如何使用mysqldump备份数据库_mysql备份示例

8次阅读

mysqldump是最常用可靠的mysql备份方式,生成可读sql文件;支持单库/多库备份、时间戳命名、–single-transaction等参数提升一致性与兼容性,并可压缩节省空间。

如何使用mysqldump备份数据库_mysql备份示例

使用 mysqldump 备份 MySQL 数据库是最常用、最可靠的方式之一,它能生成可读的 SQL 文件,便于恢复、迁移或版本管理。

基础备份命令(单库)

最简单的用法是备份一个数据库到 SQL 文件:

  • mysqldump -u username -p database_name > backup.sql

执行后会提示输入密码。注意:用户名需有该库的 select 权限,推荐使用专用只读账号。

带时间戳的自动备份文件名

避免覆盖旧备份,建议在文件名中加入日期:

  • mysqldump -u root -p myapp > myapp_$(date +%Y%m%d_%H%M%S).sql

linux/macos 中可直接运行;windows 用户可用 PowerShell 的 Get-Date -format "yyyyMMdd_HHmmss" 替代。

常用实用参数组合

生产环境建议加上这些选项提升兼容性和可靠性:

  • --single-transaction:对 InnoDB 表启用一致性快照,避免锁表(推荐)
  • --routines:导出存储过程和函数
  • --triggers:导出触发器
  • --events:导出事件调度器定义
  • --set-gtid-purged=OFF:关闭 GTID 相关语句(用于非 GTID 环境或避免恢复报错)

完整示例:

mysqldump -u root -p --single-transaction --routines --triggers --events --set-gtid-purged=OFF myapp > myapp_full_$(date +%Y%m%d).sql

备份多个库或排除某些表

备份多个指定数据库:

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

跳过某个大表(如日志表)节省空间和时间:

  • mysqldump -u root -p myapp --ignore-table=myapp.log_table > backup_no_log.sql

注意:--ignore-table 必须写成 db_name.table_name 格式,且区分大小写(取决于系统配置)。

压缩备份文件(节省空间)

直接管道压缩,不生成中间文件:

  • mysqldump -u root -p myapp | gzip > myapp_$(date +%Y%m%d).sql.gz

恢复时用:gunzip

text=ZqhQzanResources