1.1 导出脚本和数据 MySQL的导出是利用MySQL安装目录的bin目录下的mysqldump指令来进行的,该命令需要在Windows的cmd命令窗口执行。语法如下:
CMD代码:
[SQL] 纯文本查看 复制代码
mysqldump –uusername –ppassword database_name > export_path
如:
CMD代码:
[SQL] 纯文本查看 复制代码
mysqldump –uroot –p123 test > D:\\test.sql
如果需要指定导出文件的编码则可以通过参数--default-character-set来指定,如:
SQL代码:
[SQL] 纯文本查看 复制代码
mysqldump –uroot –p123 test > D:\\test.sql --default-character-set=utf8
1.2 只导出脚本
上述脚本会连目标库里面的数据一起导出来,但有时候我们可能并不需要导出其中的数据,这个时候我们可以加上参数--no-data。(注意no前面是有两个横杠的)。如:
CMD代码:
[SQL] 纯文本查看 复制代码
mysqldump --no-data -uroot -p123 test > D:\\test.sql
1.3 远程导出
有时候我们可能想导出的数据库不是本地的,这个时候我们可以加上参数-h来指定要导出的数据库所在的主机,以及在使用非默认端口(3306)时通过参数-P(大写)指定对应的端口。如:
CMD代码:
[SQL] 纯文本查看 复制代码
mysqldump -uroot -p123 -h10.10.10.3 -P3306 test > D:\\test.sql
需要注意的是MySQL默认只允许访问本机的数据库,如果需要访问远程的MySQL,那么远程的MySQL应当开放指定IP访问的权限。如:
MYSQL代码:
[SQL] 纯文本查看 复制代码
grant all privileges on *.* to ‘root’@’10.10.10.3’ identified by ‘123' with grant option;
也可以把IP换成百分号“%”,表示所有的IP都允许访问,如:
MYSQL代码:
[SQL] 纯文本查看 复制代码
grant all privileges on *.* to ‘root’@’%’ identified by ‘123’ with grant option;
也可以使用如下形式,表示只允许IP以“10.10.10”开始的进行访问,如:
MYSQL代码:
[SQL] 纯文本查看 复制代码
grant all privileges on *.* [color=#000][backcolor=rgb(250, 250, 250)][font=Monaco, "][size=12px] to ‘root’@’[/size][/font][/backcolor][/color][color=#c000][backcolor=rgb(250, 250, 250)][font=Monaco, "][size=12px]10.10[/size][/font][/backcolor][/color][color=#000][backcolor=rgb(250, 250, 250)][font=Monaco, "][size=12px].[/size][/font][/backcolor][/color][color=#c000][backcolor=rgb(250, 250, 250)][font=Monaco, "][size=12px]10[/size][/font][/backcolor][/color][color=#000][backcolor=rgb(250, 250, 250)][font=Monaco, "][size=12px].%’ [/size][/font][/backcolor][/color] identified by ‘123’ with grant option;
grant指令是需要在MySQL命令窗口执行的,其标准语法如下所示:
MYSQL代码:
[SQL] 纯文本查看 复制代码
grant [privilege1,privilege2] on database_name.table_name to ‘username’@’client_host’ identified by ‘password’ [with grant option];
其表示将某个数据库的某个表的某权限赋予给来自某客户端的某用户,“all privileges”表示将授予所有的权限,“with grant option”表示其是否可以将自身的权限授予他人。如果我们只想授予某用户对某表的select权限,则可以使用如下语句:
MYSQL代码:
[SQL] 纯文本查看 复制代码
grant select on database_name.* to ‘username’@’client_host’ identified by 'password'
1.4 导出查询结果
SQL代码:
[SQL] 纯文本查看 复制代码
select * from user into outfile 'D:\out.sql'
如果需要导入这个导出结果,则使用:
SQL代码:
[SQL] 纯文本查看 复制代码
load data local infile 'D:\out.sql' into table user;
2、导入