控制mysqldump输出格式(每行一个INSERT)

使用--skip-extended-insert参数可以强制每个INSERT语句单独成行。默认情况下mysqldump会使用扩展INSERT语法(多行合并为一个INSERT语句)。

mysqldump --skip-extended-insert -u username -p database_name > output.sql

对于需要保留复制点信息的场景,添加--master-data参数:

mysqldump --skip-extended-insert --master-data=2 -u username -p database_name > output.sql

关键参数说明

--master-data=2会在输出文件中以注释形式包含二进制日志坐标(CHANGE MASTER语句),值设为1时该语句非注释形式。该参数自动启用--lock-all-tables(除非同时使用--single-transaction)。

-- Position to start replication from
--
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000123', MASTER_LOG_POS=456789;

完整备份命令示例

结合事务锁定确保数据一致性,同时控制INSERT格式:

mysqldump --skip-extended-insert --master-data=2 --single-transaction -u username -p database_name > backup.sql

参数说明:

  • --single-transaction:对InnoDB表使用事务确保一致性
  • -u:指定用户名
  • -p:提示输入密码
  • 最后的重定向操作符将输出保存到文件
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐