一般情况下,主机管理面板都会提供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数据表语句。