mysqldump 基本用法

mysqldump 基本用法

語法

導出要用到MySQL的mysqldump工具,基本用法是:mysql

$ mysqldump [OPTIONS] [database] [tables]

若是你不給定任何表,整個數據庫將被導出。
經過執行mysqldump --help,你能獲得你mysqldump的版本支持的選項表。
注意,若是你運行mysqldump沒有--quick--opt選項,mysqldump將在導出結果前裝載整個結果集到內存中,若是你正在導出一個大的數據庫,這將多是一個問題。sql

經常使用用法

導出整個數據庫

mysqldump -u 用戶名 -p 數據庫名 > 導出的文件名   
mysqldump -u username -p db_name > ~/db.sql

導出一個表

mysqldump -u 用戶名 -p 數據庫名 表名> 導出的文件名
mysqldump -u db_username -p db_name table_name > ~/db.sql

導出一個數據庫結構

mysqldump -u username -p -d --add-drop-table db_name >~/db.sql

-d 沒有數據 --add-drop-table 在每一個create語句以前增長一個drop table數據庫

導入數據庫, 經常使用source 命令

# 進入mysql數據庫控制檯
mysql -u root -p
mysql>use 數據庫
# 而後使用source命令,後面參數爲腳本文件(如這裏用到的.sql)
mysql>source ~/db.sql

其餘用法

# 製做整個數據庫的一個備份:
mysqldump --opt db_name > backup-file.sql 
# 來自於一個數據庫的信息充實另一個MySQL數據庫
mysqldump --opt db_name | mysql --host=remote-host -C database

因爲mysqldump導出的是完整的SQL語句,因此用mysql客戶程序很容易就能把數據導入了服務器

mysql 庫名 < 文件名
mysqladmin create db_name
mysql db_name < backup-file.sql

導出數據表結構

mysqldump  -uroot -pdbPwd  -S /tmp/mysqld.sock --default-character-set=utf8 -e -R -d --skip-opt  target_db_name  >  dumpFile.sql

mysqldump支持下列選項:

--add-lockssocket

在每一個表導出以前增長LOCK TABLES而且以後UNLOCK TABLE。(爲了使得更快地插入到MySQL)。

--add-drop-table工具

在每一個create語句以前增長一個drop table。

--allow-keywordsui

容許建立是關鍵詞的列名字。這由表名前綴於每一個列名作到。

-c, --complete-insertdebug

使用完整的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子句相同的含義。

-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`
相關文章
相關標籤/搜索