備份MySQL數據庫為帶刪除表的格式備份MySQL數據庫為帶刪除表的格式,能夠讓該備份覆蓋已有數據庫而不需要手動刪除原有數據庫。
mysqldump ---add-drop-table -uusername -ppassword databasename > backupfile.sql直接將MySQL數據庫壓縮備份
代碼如下 復制代碼 mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz備份MySQL數據庫某個(些)表
代碼如下 復制代碼 mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql同時備份多個MySQL數據庫
代碼如下 復制代碼 mysqldump -hhostname -uusername -ppassword --databases databasename1 databasename2 databasename3 > multibackupfile.sql僅僅備份數據庫結構
代碼如下 復制代碼 mysqldump --no-data --databases databasename1 databasename2 databasename3 > structurebackupfile.sql備份服務器上所有數據庫
代碼如下 復制代碼mysqldump --all-databases allbackupfile.sql還原MySQL數據庫的命令
mysql -hhostname -uusername -ppassword databasename < backupfile.sql還原壓縮的MySQL數據庫
gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename將數據庫轉移到新服務器
mysqldump -uusername -ppassword databasename | mysql --host=*.*.*.* -C databasename壓縮備份
備份並用gzip壓縮:
代碼如下 復制代碼mysqldump < mysqldump options> | gzip > outputfile.sql.gz從gzip備份恢復:
gunzip < outputfile.sql.gz | mysql < mysql options>備份並用bzip壓縮:
mysqldump < mysqldump options> | bzip2 > outputfile.sql.bz2從bzip2備份恢復:
bunzip2 < outputfile.sql.bz2 | mysql < mysql options>
mysqldump支持下列選項:
--add-locks
在每個表導出之前增加LOCK TABLES並且之後UNLOCK TABLE。(為了使得更快地插入到MySQL)。
--add-drop-table
在每個create語句之前增加一個drop table。
--allow-keywords
允許創建是關鍵詞的列名字。這由表名前綴於每個列名做到。
-c, --complete-insert
使用完整的insert語句(用列名字)。
-C, --compress
如果客戶和服務器均支持壓縮,壓縮兩者間所有的信息。
--delayed
用INSERT DELAYED命令插入行。
-e, --extended-insert
使用全新多行INSERT語法。(給出更緊縮並且更快的插入語句)
-#, --debug[=option_string]
跟蹤程序的使用(為了調試)。
--help
顯示一條幫助消息並且退出。
--fields-terminated-by=...
--fields-enclosed-by=...
--fields-optionally-enclosed-by=...
--fields-escaped-by=...
--fields-terminated-by=...
這些選擇與-T選擇一起使用,並且有相應的LOAD DATA INFILE子句相同的含義。
LOAD DATA INFILE語法。
-F, --flush-logs
在開始導出前,洗掉在MySQL服務器中的日志文件。
-f, --force,
即使我們在一個表導出期間得到一個SQL錯誤,繼續。
-h, --host=..
從命名的主機上的MySQL服務器導出數據。缺省主機是localhost。
-l, --lock-tables.
為開始導出鎖定所有表。
-t, --no-create-info
不寫入表創建信息(CREATE TABLE語句)
-d, --no-data
不寫入表的任何行信息。如果你只想得到一個表的結構的導出,這是很有用的!
--opt
同--quick --add-drop-table --add-locks --extended-insert --lock-tables。
應該給你為讀入一個MySQL服務器的盡可能最快的導出。
-pyour_pass, --password[=your_pass]
與服務器連接時使用的口令。如果你不指定“=your_pass”部分,mysqldump需要來自終端的口令。
-P port_num, --port=port_num
與一台主機連接時使用的TCP/IP端口號。(這用於連接到localhost以外的主機,因為它使用 Unix套接字。)
-q, --quick
不緩沖查詢,直接導出至stdout;使用mysql_use_result()做它。
-S /path/to/socket, --socket=/path/to/socket
與localhost連接時(它是缺省主機)使用的套接字文件。
-T, --tab=path-to-some-directory
對於每個給定的表,創建一個table_name.sql文件,它包含SQL CREATE 命令,和一個table_name.txt文件,它包含數據。 注意:這只有在mysqldump運行在mysqld守護進程運行的同一台機器上的時候才工作。.txt文件的格式根據--fields-xxx和--lines--xxx選項來定。
-u user_name, --user=user_name
與服務器連接時,MySQL使用的用戶名。缺省值是你的Unix登錄名。
-O var=option, --set-variable var=option設置一個變量的值。可能的變量被列在下面。
-v, --verbose
冗長模式。打印出程序所做的更多的信息。
-V, --version
打印版本信息並且退出。
-w, --where=@#where-condition@#
只導出被選擇了的記錄;注意引號是強制的!
"--where=user=@#jimf@#" "-wuserid>1" "-wuserid<1"
MySQL Dump/Restore
Dump ALL MySQL Databases
Dump Individual or Multiple MySQL Databases
代碼如下 復制代碼 mysqldump --user=XXXXXXXX --password=XXXXXXX --databases DB_NAME1 DB_NAME2 DB_NAME3 > /PATH/TO/DUMPFILE.SQL
Dump only certain tables from a MySQL Database
代碼如下 復制代碼 mysqldump --user=XXXXXXXX --password=XXXXXXXX --databases DB_NAME --tables TABLE_NAME > /PATH/TO/DUMPFILE.SQL
I'm using MySQL 4.1.8 on my development server, but am behind a few releases on our production server. In order to make dumps compatible with the old MySQL version, add the following switch: --compatible=mysql323
--------------------------------------------------------------------------------
Use the following procedure to reload the contents of a database:
Unzip the backup file you wish to use.
Open it up and pull out only the information that you will need.
Save this text file.
Use the following command to feed back in the contents of a text file:
Restoring MySQL database.
The mysqldump utility is used only to take the MySQL dump. To restore the database from the dump file that you created in previous step, use mysql command.
Example:
代碼如下 復制代碼
shell> mysql --user root --password=myrootpassword new_db < db_test.sql