强烈建议使用以下命令:

# 恢复时删表
/usr/bin/mysqldump --skip-opt -a -q --add-drop-database --extended-insert --add-drop-table --single-transaction -u'user' -p'password' test > /tmp/11.sql

# 恢复时删表,insert分多条进行导入,恢复时间较长【数据量特别大时,为防止恢复时内存溢出,可使用此种方法进行导出】
/usr/bin/mysqldump --skip-opt -a -q --extended-insert --add-drop-table --single-transaction -u'user' -p'password' test > /tmp/22.sql

# 恢复不删库,仅删表,一条insert进行导入,数据多有时候可能容易内存溢出【数据量不大时,可使用此用方法,算是最常用的吧】
/usr/bin/mysqldump --skip-opt -a -q --add-drop-table --single-transaction -u'user' -p'password' test > /tmp/33.sql

  

Mysqldump 导出表结构异常

 

这两天备份数据发现导出来的表 PK 的 AUTO_INCREMENT 属性丢失:

--skip-opt -q -R --set-gtid-purged=OFF --extended-insert --add-drop-database --add-drop-table --single-transaction

  发现如下:

  • –skip-opt 选项,相当于
--add-drop-table, --add-locks,
--create-options, --quick, --extended-insert,
--lock-tables, --set-charset, and --disable-keys
  • --created-options :
-a, --create-options  Include all MySQL specific create options.
  • 如果把它 disable 的话,备份出来的表结构,会少了:
AUTO_INCREMENT   --PK字段的AUTO_INCREMENT属性以及数据表的AUTO_INCREMENT属性都会丢掉
ENGINE=InnoDB DEFAULT CHARSET=utf8  --数据表的引擎、字符集属性