一、常用选项
--quick
该选项用于转储大的表。它强制mysqldump从服务器一次一行地检索表中的行而不是检索所有行并在输出前将它缓存到内存中。
--no-data
只导出表的结构
--master-data[=value]
该选项将二进制日志的位置和文件名写入到输出中。该选项要求有RELOAD权限,并且必须启用二进制日志。如果该选项值等于1,位置和文件名被写入CHANGE MASTER语句形式的转储输出,如果你使用该SQL转储主服务器以设置从服务器,从服务器从主服务器二进制日志的正确位置开始。如果选项值等于2,CHANGE MASTER语句被写成SQL注释。如果value被省略,这是默认动作。
--database
导出几个数据库。通常情况,mysqldump将命令行中的第1个名字参量看作数据库名,后面的名看作表名。使用该选项,它将所有名字参量看作数据库名。
--all-databases
导出所有数据库
--tables
指定表名
--var_name=value
max_allowed_packet 客户端/服务器之间通信的缓存区的最大大小
net_buffer_length 客户端/服务器之间通信的缓存区的初始大小
--set-charset
将SET NAMES default_character_set加到输出中
二、使用用例
(1)导出单个数据库
mysqldump -u<user> -p<pwd> -h<host> dbname > data.sql
(2)导出单个数据库的结构
mysqldump -u<user> -p<pwd> -h<host> dbname --no-data > data.sql
(3)导出所有数据库
mysqldump -u<user> -p<pwd> -h<host> --all-databases > data.sql
(4)导出多个数据库
mysqldump -u<user> -p<pwd> -h<host> --database db1 [db2 db3 ...] > data.sql
(5)导出数据库中的某些表
mysqldump -u<user> -p<pwd> -h<host> dbname --tables table1 [table2 table3 ...] > data.sql
(6)在my.cnf中设置
[mysqldump]
quick
max_allowed_packet = value
net_buffer_length= value
可以增加导出的速度
(7)导出master数据,并将二进制文件位置和文件名写入CHANGE MASTER语句形式的转储输出
mysqldump -u<user> -p<pwd> -h<host> dbname --master-data=1 > data.sql
(8)增加导入时的字符集设置
mysqldump -u<user> -p<pwd> -h<host> dbname --set-charset=utf8 > data.sql