Mysql快速导出命令

命令模板

{mysqldump_bin} --opt --hex-blob --skip-lock-tables --single-transaction --routines --events --skip-triggers --default-character-set='{db_charset}' --force --host='{db_host}' --port={db_port} --user='{db_user}' --password='{db_password}' '{db_name}'

参数说明

  • {mysqldump_bin} # mysqldump 可执行文件路径(比如 /usr/bin/mysqldump)
  • --opt # 相当于开启一系列优化选项(—add-drop-table、—add-locks、—create-options、—quick 等)
  • --hex-blob # 将二进制字段(BLOB)以十六进制导出,防止乱码
  • --skip-lock-tables # 不锁表(避免阻塞其他查询)
  • --single-transaction # 使用单事务导出(对 InnoDB 无锁且一致性好)
  • --routines # 导出存储过程和函数
  • --events # 导出事件调度器(EVENT)
  • --skip-triggers # 不导出触发器
  • --default-character-set='{db_charset}' # 指定字符集,例如 utf8mb4
  • --force # 出错也继续执行
  • --host='{db_host}' # 数据库地址
  • --port={db_port} # 数据库端口
  • --user='{db_user}' # 用户名
  • --password='{db_password}' # 密码
  • '{db_name}' # 要导出的数据库名

使用示例

导出一个名为 mydb 的数据库,MySQL 在本机 3306 端口,字符集 utf8mb4,用户是 root 密码 123456:

mysqldump --opt --hex-blob --skip-lock-tables --single-transaction --routines --events --skip-triggers \
--default-character-set='utf8mb4' --force \
--host='127.0.0.1' --port=3306 --user='root' --password='123456' 'mydb' > mydb.sql