在数据库导出之前,先讲一下用户权限问题
1、什么是MySQL用户?
就是我们安装好MySQL数据库服务器之后,MySQL数据库服务器会默认给我们创建几个用户,我们可以在MySQL终端(客户端)输入下面命令进行查看。
第一步,查看刚安装好的MySQL数据库里面有哪些默认的数据库,输入
show databases;//查看已经存在的数据库
终端结果( information_schema, mysql,performance_schema):
第二步,查看默认已经存在的用户,输入
Use MySQL;
select host,user,password from user;//查询用户服务器主机,用户名,密码
下面那个用户是我自己创建的用户,其他用户我已经删除了,所以看不到默认已存在的用户
第三步,也是导入和导出数据库重点,查看用户权限,输入
show grants;
假如你没看到有LOCK TABLES权限,你是有可能导出导入数据库失败,会提示:Access denied for user ‘root’@‘localhost’ to database ‘user’ when using LOCK。表示数据库的表被锁了,没有权限进行导入导出数据库。
小技巧
假如你的表被锁了,那么你就可以修改用户权限,来进行对表的解锁。修改用户权限及解锁,命令及步骤如下:
1、修改用户权限(先进到MySQL用户终端,按回车,刚安装好的MySQL数据库,默认是不需要密码就能进入终端的,然后输入下面命令)
use mysql;
update user set set Lock_tables_priv='Y';
2、对自己创建的数据库中的表进行解锁,输入下面命令:
unlock tables;
(到此,就可以对数据库进行导入导出了)
现在上面路径的文件夹下,是没有任何东西的,我现在开始导出数据库到这个文件夹。
(1)调出dos窗口(win+R),如下命令,可调出dos窗口:
(2)然后在dos窗口键入命令,跳转到自己安装MySQL数据库的路径下的bin文件夹,如下:
(3)导出数据库到D:\dump-sql
命令格式解析:
mysqldump -u root -p user>D:\dump-sql\2.sql
格式:mysqldump –u 用户名 –p 数据库名 > {将要存放文件的路径}+导出的文件名.sql
查看D:\dump-sql,会发现多出2.sql,没错,这就是我们导出的数据库,嘿嘿,看下图:
(1)先要在MySQL终端,创建一个空的数据库,否则,无法导入自己数据库的数据。创建一个空的数据库:
create database test default character set utf8;//default character set utf8;防止乱码出现
终端结果如下:
(2)空的数据库创建完之后,调出dos窗口(win+R),如下命令,可调出dos窗口:
(3)然后在dos窗口键入命令,跳转到自己安装MySQL数据库的路径下的bin文件夹,如下:
(4)导入自己的数据库,如下:
命令格式解析:
mysql -u root -p test<D:\dump-sql\2.sql
格式:mysql -u 用户名 -p 数据库名 <{存放文件的路径}+导出的文件名.sql
(5)在MySQL终端键入命令,查看导入的数据库数据,输入
use test;//使用该数据库
select* from studentinfo;//查询test数据库中的表数据
1、导入导出数据库,要设置用户相应的权限(lock_table_priv)
2、导入导出数据库,需要用到两个终端,一个是dos命令窗口(win+R),一个是MySQL终端.