mysqldump 属于数据库逻辑备份程序,通常使用它来对一个或多个 MySQL 数据库进行备份或还原,另外还可以将数据库传输给其他的 MySQL 服务器。下面良许小编就将Linux mysqldump命令的用法进行详述,希望对大家有所帮助。
在使用 mysldump 来备份数据库表时,必须要求该账户拥有 SELECT 权限,SHOW VIEW 权限用于备份视图,TRIGGER 权限用于备份触发器。
注意,其他的命令选项可能还需要拥有更多的权限才能完成。
由于 mysqldump 需要通过重建 SQL 语句来实现备份功能,对于数据量比较大的数据库备份与还原操作,速度都比较慢,因此 mysqldump 不适用于大数据的备份。当打开 mysqldump 备份文件时,备份文件的内容就是数据库的 SQL 语言重现。对于大数据的备份与还原,通常会选择物理备份,即直接复制数据文件,就可以实现快速的数据还原工作。
使用 mysqldump 可以备份数据库中的数据表,也可以备份整个数据库,还可以备份 MySQL 系统中的所有数据库。对于使用 mysqldump 工具备份的数据库文件,可以使用 mysql 命令工具还原数据。
注意,在备份整个数据库时,不能在数据库后使用数据表的名称。
mysqldump 命令的语法格式如下:
[root@liangxu ~]# mysqldump [选项] db_name [table_name]
[root@liangxu ~]# mysqldump [选项] --databases db_name …
[root@liangxu ~]# 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工具的使用方法如下:
- 备份所有的数据库,如下所示:
[root@liangxu ~]# mysqldump -u root -p --all-databases > all database sql
Enter password:
- 备份 mysql 数据库下的 user 数据包,如下所示:
[root@liangxu ~]# mysqldump -u root -p myaql user > user_table
Enter password:
- 使用 all_database_sql 数据库备份文件还原数据库,如下所示:
[root@liangxu ~]# mysql -u root -p myaql < all-database_sql
Enter password:
- 使用 user_table 数据库备份文件还原数据表,如下所示:
[root@liangxu ~]# mysql -u root -p myaql < user_table
Enter password:
注意,所有的备份和还原操作都必须在输入命令后,输入密码。