1. 程式人生 > 實用技巧 >Mysqldump 匯出表結構異常

Mysqldump 匯出表結構異常

強烈建議使用以下命令:
# 刪庫、刪表
/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 --extended-insert --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  --資料表的引擎、字符集屬性

    加上 -a 後正常