{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