插件窝 干货文章 mysqldump 命令怎么使用?

mysqldump 命令怎么使用?

MySQLDump 备份 database name 182    来源:    2025-05-11

MySQLDump 使用指南

mysqldump 是 MySQL 数据库备份工具,用于将数据库结构和数据导出为 SQL 文件。以下是详细使用方法:

基本语法

mysqldump -u [username] -p[password] [options] [database_name] [table_name] > [output_file.sql]

常用命令示例

1. 备份整个数据库

mysqldump -u root -p database_name > backup.sql

2. 备份特定表

mysqldump -u root -p database_name table1 table2 > backup.sql

3. 备份多个数据库

mysqldump -u root -p --databases db1 db2 db3 > backup.sql

4. 备份所有数据库

mysqldump -u root -p --all-databases > full_backup.sql

5. 只备份结构(不包含数据)

mysqldump -u root -p --no-data database_name > structure.sql

6. 只备份数据(不包含结构)

mysqldump -u root -p --no-create-info database_name > data.sql

常用选项

选项 说明
-u 指定用户名
-p 提示输入密码
-h 指定主机名
-P 指定端口号
--add-drop-table 在每个表创建前添加 DROP TABLE 语句
--add-locks 在 INSERT 语句前后添加 LOCK TABLES 和 UNLOCK TABLES
--complete-insert 使用完整的 INSERT 语句(包含列名)
--compress 压缩客户端和服务器之间的通信
--create-options 在 CREATE TABLE 语句中包含所有 MySQL 特定选项
--extended-insert 使用多行 INSERT 语法(更紧凑)
--lock-tables 备份前锁定所有表
--quick 不缓冲查询,直接导出
--routines 包含存储过程和函数
--triggers 包含触发器
--events 包含事件
--single-transaction 对 InnoDB 表使用事务保证一致性

高级用法

1. 压缩备份

mysqldump -u root -p database_name | gzip > backup.sql.gz

2. 定时备份(结合 crontab)

0 3 * * * /usr/bin/mysqldump -u root -pPASSWORD database_name > /backups/db_$(date +\%Y\%m\%d).sql

3. 只备份某些表的数据

mysqldump -u root -p --ignore-table=database_name.table1 --ignore-table=database_name.table2 database_name > backup.sql

4. 从备份恢复数据库

mysql -u root -p database_name < backup.sql

5. 导出为 CSV 格式

mysqldump -u root -p --tab=/tmp --fields-terminated-by=',' --fields-enclosed-by='"' --lines-terminated-by='\n' database_name

注意事项

  1. 对于大型数据库,考虑使用 --single-transaction 选项(仅限 InnoDB)
  2. 生产环境备份时,建议使用 --lock-tables--single-transaction 保证数据一致性
  3. 密码可以直接跟在 -p 后面(不安全)或单独输入(更安全)
  4. 对于远程备份,使用 -h 指定主机名

希望这些信息对您有所帮助!如需更详细的参数说明,可以查看官方文档或运行 mysqldump --help