命令模板
{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