1. 程式人生 > >mysqldump導入導出參數

mysqldump導入導出參數

取消 錯誤 前綴 lena 備份文件 action add 選項 表結構

mysqldunp常用參數:--single-transaction 和 --master-data=2 導出整個數據庫(包括數據庫中的數據) mysqldump -u username -p dbname > dbname.sql 導出某些庫 mysqldump -uusername -ppassword --databases db1 db2 > db1db2.sql 導出數據庫結構(不含數據) mysqldump -u username -p -d dbname > dbname.sql 導出數據庫中的某張數據表(包含數據) mysqldump -u username -p dbname tablename > tablename.sql 導出數據庫中的某張數據表的表結構(不含數據) mysqldump -u username -p -d dbname tablename > tablename.sql 將備份文件壓縮: mysqldump -hhostname -uusername -ppassword --databases dbname | gzip > backup-file.sql.gz 導入數據庫: mysql> use target_dbname mysql> source /mysql/backup/path/backup-file.sql 或 mysql target_dbname <backup-file.sql 用mysql命令恢復 mysql -uroot -ppassword db_name < /backup/mysql_bak.sql 如果是壓縮的 mysql -uroot -ppassword db_name < `gzip -d /backup/mysql_bak.sql.gz` for MyISAM mysqldump --user=root --all-databases --flush-privileges --lock-all-tables \ --master-data=1 --flush-logs --triggers --routines --events \ --hex-blob >$BACKUP_DIR/full_dump_$BACKUP_TIMESTAMP.sql for InnoDB mysqldump --user=root --all-databases --flush-privileges --single-transaction \ --master-data=1 --flush-logs --triggers --routines --events \ --hex-blob >$BACKUP_DIR/full_dump_$BACKUP_TIMESTAMP.sql mysqldump常用參數說明: –user, -u 指定連接的用戶名。 –password, -p 連接數據庫密碼 –host, -h 指定要連接的服務器名。 –port, -P 連接數據庫端口號 --complete-insert, -c 使用完整的insert語句(包含列名稱)。這麽做能提高插入效率,但是可能會受到max_allowed_packet參數的影響而導致插入失敗。 --add-drop-table 每個數據表創建之前添加drop數據表語句。(默認為打開狀態,使用--skip-add-drop-table取消選項) –default-character-set 設置默認字符集,默認值為utf8 –all-databases , -A 導出全部數據庫 –databases, -B 導出幾個數據庫。參數後面所有名字參量都被看作數據庫名。 --tables 覆蓋--databases (-B)參數,指定需要導出的表名。 --no-create-db, -n 只導出數據,而不添加CREATE DATABASE 語句。 –no-data, -d 不導出任何數據,只導出數據庫表結構。 --no-create-info, -t 只導出數據,不導結構。 --force 在導出過程中忽略出現的SQL錯誤。類似Oracle exp命令中的ignore參數。 --flush-logs 開始導出之前刷新日誌。如果是全庫導出,建議先刷新日誌文件,否就不用了。請註意:假如一次導出多個數據庫(使用選項--databases或者--all-databases),將會逐個數據庫刷新日誌。除使用--lock-all-tables或者--master-data外。在這種情況下,日誌將會被刷新一次,相應的所以表同時被鎖定。因此,如果打算同時導出和刷新日誌應該使用--lock-all-tables 或者--master-data 和--flush-logs。 --where, -w 只導出符合條件的記錄。如果條件包含命令解釋符專用空格或字符,一定要將條件引用起來。 --single-transaction 該選項在導出數據之前提交一個BEGIN SQL語句,BEGIN 不會阻塞任何應用程序且能保證導出時數據庫的一致性狀態。它只適用於多版本存儲引擎,僅InnoDB。本選項和--lock-tables 選項是互斥的,因為LOCK TABLES 會使任何掛起的事務隱含提交。要想導出大表的話,應結合使用--quick 選項。 --flush-logs , -F 在開始導出前刷新服務器的日誌文件。註意,如果你一次性導出很多數據庫(使用 -databases=或--all-databases選項),導出每個庫時都會觸發日誌刷新。例外是當使用了--lock-all-tables或--master-data時:日誌只會被刷新一次,那個時候所有表都會被鎖住。所以如果你希望你的導出和日誌刷新發生在同一個確定的時刻,你需要使用--lock-all-tables,或者--master-data配合--flush-logs。 --master-data 這個選項可以把binlog的位置和文件名添加到輸出中,如果等於1,將會打印成一個CHANGE MASTER命令;如果等於2,會加上註釋前綴。並且這個選項會自動打開--lock-all-tables,除非同時設置了--single-transaction(這種情況下,全局讀鎖只會在開始dump的時候加上一小段時間,不要忘了閱讀--single-transaction的部分)。在任何情況下,所有日誌中的操作都會發生在導出的準確時刻。這個選項會自動關閉--lock-tables。 -x, --lock-all-tables 鎖定所有庫中所有的表。這是通過在整個dump的過程中持有全局讀鎖來實現的。會自動關閉--single-transaction和--lock-tables。 --routines, -R 導出存儲過程以及自定義函數。 --replace 使用REPLACE INTO 取代INSERT INTO

mysqldump導入導出參數