一般情况下,主机管理面板都会提供PHPMyAdmin等管理工具,方便管理MySQL或MariaDB数据库。但是由于PHP运行时间的限制,在导入导出较大的数据库的时候,容易超时而出错,这时候学点命令行工具导入导出就很有必要了。今天给大家介绍一下mysqldump这个工具。
mysqldump是mysql自带的逻辑备份工具,虽然在性能上不及物理备份工具xtrabackup,但操作大小在几个G的mysql数据库还是绰绰有余的,很适合博客、小网站的备份。
常用案例

备份wker数据库到当前目录:
mysqldump -u root -p wker > wker.sql
备份wker数据库的表结构到当前目录:
mysqldump -u root -p -d wker > wker.sql
备份wker数据库的数据到当前目录:
mysqldump -u root -p -t wker > wker.sql
备份wker数据库到当前目录,并进行gzip压缩:
mysqldump -u root -p wker | gzip > wker.sql.gz
还原当前目录下的wker.sql到wker数据库:
mysql -u root -p wker < wker.sql
常见参数
请注意,参数区分大小写。
-h, --host:指定主机信息。
-u, --user:指定连接的用户名。
-p, --password:连接数据库密码。
-P, --port:连接数据库端口号
-d, --no-data:不导出任何数据,只导出数据库表结构。
-t, --no-create-info:只导出数据,而不添加CREATE TABLE 语句。
-n, --no-create-db:只导出数据,而不添加CREATE DATABASE 语句。
--single-transaction:适合innodb事务数据库的备份。
--default-character-set:设置默认字符集。
-C, --compress:在客户端和服务器之间启用压缩传递所有数据。
-A, --all-databases:导出全部数据库。
--add-drop-database:每个数据库创建之前添加drop数据库语句。
--add-drop-table:每个数据表创建之前添加drop数据表语句。