mysqldump命令导入导出数据库方法与实例汇总

2019-01-04 20:19:51王旭

 注释:该选项只适用于mysqldump与mysqld服务器在同一台机器上运行时。你必须具有file权限,并且服务器必须有在你指定的目录中有写文件的许可。
 --tables
 覆盖---database或-b选项。选项后面的所有参量被看作表名。
 --triggers
 为每个转储的表转储触发器。该选项默认启用;用--skip-triggers禁用它。
 --tz-utc
 在转储文件中加入set time_zone='+00:00'以便timestamp列可以在具有不同时区的服务器之间转储和重载。(不使用该选项,timestamp列在具有本地时区的源服务器和目的服务器之间转储和重载)。--tz-utc也可以保护由于夏令时带来的更改。--tz-utc默认启用。要想禁用它,使用--skip-tz-utc。该选项在mysql 5.1.2中加入。
 --user=user_name,-u user_name
 连接服务器时使用的mysql用户名。
 --verbose,-v
 冗长模式。打印出程序操作的详细信息。
 --version,-v
 显示版本信息并退出。
 --where='where-condition', -w 'where-condition'
 只转储给定的where条件选择的记录。请注意如果条件包含命令解释符专用空格或字符,一定要将条件引用起来。
 例如:
 "--where=user='jimf'"
 "-wuserid>1"
 "-wuserid<1"
 --xml,-x
 将转储输出写成xml。
 还可以使用--var_name=value选项设置下面的变量:
 max_allowed_packet
 客户端/服务器之间通信的缓存区的最大大小。最大为1gb。
 net_buffer_length
 客户端/服务器之间通信的缓存区的初始大小。当创建多行插入语句时(如同使用选项--extended-insert或--opt),mysqldump创建长度达net_buffer_length的行。如果增加该变量,还应确保在mysql服务器中的net_buffer_length变量至少这么大。
 还可以使用--set-variable=var_name=value或-o var_name=value语法设置变量。然而,现在不赞成使用该语法。
 mysqldump最常用于备份一个整个的数据库:
shell> mysqldump --opt db_name > backup-file.sql

可以这样将转储文件读回到服务器:

shell> mysql db_name < backup-file.sql

 或者为:

shell> mysql -e "source /path-to--backup/backup-file.sql" db_name

 mysqldump也可用于从一个mysql服务器向另一个服务器复制数据时装载数据库:
shell> mysqldump --opt db_name | mysql --host=remote_host -c db_name

 可以用一个命令转储几个数据库:
shell> mysqldump ---database db_name1 [db_name2 ...] > my_databases.sql

 如果想要转储所有数据库,使用--all--database选项:

shell> mysqldump --all-databases > all_databases.sql