首页 > 编程笔记

Linux mysqldump命令的用法

mysqldump 属于数据库逻辑备份程序,通常使用它来对一个或多个 MySQL 数据库进行备份或还原,另外还可以将数据库传输给其他的 MySQL 服务器。

在使用 mysldump 来备份数据库表时,必须要求该账户拥有 SELECT 权限,SHOW VIEW 权限用于备份视图,TRIGGER 权限用于备份触发器。

注意,其他的命令选项可能还需要拥有更多的权限才能完成。

由于 mysqldump 需要通过重建 SQL 语句来实现备份功能,对于数据量比较大的数据库备份与还原操作,速度都比较慢,因此 mysqldump 不适用于大数据的备份。当打开 mysqldump 备份文件时,备份文件的内容就是数据库的 SQL 语言重现。对于大数据的备份与还原,通常会选择物理备份,即直接复制数据文件,就可以实现快速的数据还原工作。

使用 mysqldump 可以备份数据库中的数据表,也可以备份整个数据库,还可以备份 MySQL 系统中的所有数据库。对于使用 mysqldump 工具备份的数据库文件,可以使用 mysql 命令工具还原数据。

注意,在备份整个数据库时,不能在数据库后使用数据表的名称。

mysqldump 命令的语法格式如下:

[root@bogon ~]# mysqldump [选项] db_name [table_name]
[root@bogon ~]# mysqldump [选项] --databases db_name …
[root@bogon ~]# mysqldump [选项] --all-databases

mysqldump 中的常用选项可以通过 [mysqldump] 和 [client] 写入配置文件。mysqldump 命令的常用选项及说明如表 1 所示。

表 1 mysqldump命令的常用选项及说明
选 项 说 明
--add-drop-database 在备份文件中添加、删除相同数据库的 SQL 语句
--add-drop-table 在备份文件中添加、删除相同数据表的 SQL 语句
--add-drop-trigger 在备份文件中添加、删除相同触发器的 SQL 语句
--add-locks 在备份数据表前后添加表锁定与解锁 SQL 语句
--all-databases 备份所有数据库中的数据表
--apply-slave-statements 在 CHANGE MASTER 前添加 STOP SLAVE 语句
--bind-address=ip_address 使用指定的网络接口连接 MySQL 服务器
--comments 添加备份文件的注释
--create-options 在 CREATE TABLE 语句中包含所有的 MySQL 特性
--databases 备份指定的数据库
--debug 创建 debugging 日志
--default-character-set=charsename 设置默认字符集
--host,-h 设置需要连接的主机
--ignore-table 设置不需要备份的数据表,该选项可以使用多次
--lock-all-tables 设置全局锁,锁定所有的数据表以保证备份数据的完整性
--no-create-db,-n 只导出数据而不创建数据库
--no-create-info 只导出数据而不创建数据表
--no-date 不备份数据内容,用于备份表结构
--password,-p 还用密码连接服务器
--port=port_num 使用指定端口号连接服务器
--replace 使用 REPLACE 语句代替 INSERT 语句

mysqldump工具的使用方法如下:
1) 备份所有的数据库,如下所示:

[root@bogon ~]# mysqldump -u root -p --all-databases > all database sql
Enter password:


2) 备份 mysql 数据库下的 user 数据包,如下所示:

[root@bogon ~]# mysqldump -u root -p myaql user > user_table
Enter password:


3) 使用 all_database_sql 数据库备份文件还原数据库,如下所示:

[root@bogon ~]# mysql -u root -p myaql < all-database_sql
Enter password:


4) 使用 user_table 数据库备份文件还原数据表,如下所示:

[root@bogon ~]# mysql -u root -p myaql < user_table
Enter password:

注意,所有的备份和还原操作都必须在输入命令后,输入密码。

优秀文章