在PHP網站開發中,時常遇到MysqlDatabase Backup或資料庫遷移工作,這時Mysql怎麼匯入匯出資料庫中的資料就非常關鍵,Mysql本身提供了命令列匯出工具Mysqldump和Mysql Source匯入命令進行SQL資料匯入匯出工作,通過Mysql命令列匯出工具Mysqldump命令能夠將Mysql資料匯出為文字格式設定(txt)的SQL檔案,通過Mysql Source命令能夠將SQL檔案匯入Mysql資料庫中,下面通過Mysql匯入匯出SQL執行個體詳解Mysqldump和Source命令的用法。
Mysql命令列匯出工具Mysqldump命令詳解
Mysql命令列匯出工具Mysqldump.exe預設存放在Mysql安裝目錄中的bin子目錄下,在使用Mysqldump匯出資料庫時,首先請確保Mysql服務已啟動。
M
ysqldump匯出命令基礎用法
複製代碼 代碼如下:mysqldump -u 使用者名稱 -p [--opt] DATABASENAME [Table] >匯出SQL檔案名稱
預設Mysqldump匯出的SQL檔案中不但包含了匯出的資料,還包括匯出資料庫中所有資料表的結構資訊。
另外使用Mysqldump匯出的SQL檔案如果不帶絕對路徑,預設是儲存在bin目錄下的。
–opt:此Mysqldump命令參數是可選的,如果帶上這個選項代表啟用了Mysqldump命令的quick,add-drop-table,add-locks,extended-insert,lock-tables參數,也就是通過–opt參數在使用Mysqldump匯出Mysql資料庫資訊時不需要再附加上述這些參數。
–quick:代表忽略緩衝輸出,Mysqldump命令直接將資料匯出到指定的SQL檔案。
–add-drop-table:顧名思義,就是在每個CREATE TABEL命令之前增加DROP-TABLE IF EXISTS語句,防止資料表重名。
–add-locks:表示在INSERT資料之前和之後鎖定和解鎖具體的資料表,你可以開啟Mysqldump匯出的SQL檔案,在INSERT之前會出現LOCK TABLES和UNLOCK TABLES語句。
–extended-insert (-e):此參數表示可以多行插入。
更多的Mysqldump命令參數你可以通過
複製代碼 代碼如下:Mysqldump --help
命令查看Mysqldump包含的所有參數以及參數的支援情況。
Mysqldump匯出命令執行個體如下
Mysql資料庫安裝後預設包含mysql資料庫,我就以此資料庫為例來示範Mysqldump的各種匯出執行個體。
使用Mysqldump匯出資料庫 複製代碼 代碼如下:C:\Program Files\MySQL\MySQL Server 5.1\bin>mysqldump -u root -p --opt mysql >D:\PHPWeb\sqlbackup\mysql.sql
Enter password: ******
使用Mysqldump匯出單個表
複製代碼 代碼如下:
C:\Program Files\MySQL\MySQL Server 5.1\bin>mysqldump -u root -p --opt mysql user >D:\PHPWeb\sqlbackup\mysql_user.sql
Enter password: ******
使用Mysqldump匯出資料表結構
複製代碼 代碼如下:C:\Program Files\MySQL\MySQL Server 5.1\bin>mysqldump -u root -p --no-data mysql user >D:\PHPWeb\sqlbackup\mysql_user.sql
Enter password: ******
說明:Mysqldump命令參數 –no-data顧名思義代表Mysqldump匯出的資料中不含有INSERT資料,僅僅只是Mysql資料庫表user的結構資訊。對於這個參數你也可以使用-d來表示。
使用Mysqldump匯出指定條件的資料
複製代碼 代碼如下:C:\Program Files\MySQL\MySQL Server 5.1\bin>mysqldump -u root -p "--where= user= 'root'" mysql user >D:\PHPWeb\sqlbackup\mysql_user.sql
Enter password: ******
說明:在這個Mysqldump匯出執行個體中,通過設定Mysqldump命令參數 –where=conditions設定匯出的INSERT資料條件為user表中user欄位為root的INSERT記錄。通過這個參數你可以根據需要選用Mysqldump匯出自己想要的資料,非常方便。注意在這個where選項前後都需要使用雙引號,具體的條件可以使用單引號,否則在解析Mysqldump命令列參數時會出錯,另外你也可以指定多個where參數。
Mysql資料庫匯入命令Source詳解
Mysql最常用的資料庫匯入命令就是Source,Source命令的用法非常簡單,首先你需要進入Mysql資料庫的命令列管理介面,然後選擇需要匯入的資料庫,即
複製代碼 代碼如下:USER 資料庫
source 已匯出的SQL檔案
注意需要匯入的SQL檔案的具體目錄位址,最好使用/。
至此Mysql命令列匯出工具Mysqldump命令以及Mysql匯入命令Source的用法就介紹完了,相對於Mysql Source命令,Mysqldump匯出功能更豐富,合理利用Mysqldump命令參數能夠實現不同的效果。
mysqldump命令匯出資料用法詳解
在平時的mysql應用中,總會碰到匯入資料,匯出資料,當然有很多方法,這篇文章,主要介紹應用mysqlmysqldump命令進行資料匯入匯出,希望對大家有所協助。
mysqldump命令中帶有一個 --where/-w 參數,它用來設定資料匯出的條件,使用方式和SQL查詢命令中中的where基本上相同,有了它,我們就可以從資料庫中匯出你需要的那部分資料了。
1.命令格式如下:
mysqldump -u使用者名稱 -p密碼 資料庫名 表名 --where="篩選條件" > 匯出檔案路徑
例子:
從test資料庫的test_data表中匯出id大於100的資料到 /tmp/test.sql 這個檔案中
複製代碼 代碼如下:mysqldump -uroot -p123456 test test_data --where=" id > 100" > /tmp/test.sql
2.匯出整個資料庫
mysqldump -u 使用者名稱 -p 資料庫名 > 匯出的檔案名稱
複製代碼 代碼如下:mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql
3.匯出一個資料庫結構
複製代碼 代碼如下:mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:wcnc_db.sql
-d 沒有資料 --add-drop-table 在每個create語句之前增加一個drop table
匯出庫表(mysqldump)條件
mysqldump -u使用者名稱 -p密碼 -h主機 資料庫 a -w “sql條件” –lock-all-tables > 路徑
複製代碼 代碼如下:1 mysqldump -hhostname -uusername -p dbname tbname>xxxx.sql
** 按指定條件匯出資料庫表內容。(-w選項 –where)
1 mysqldump -hhostname -uusername-p dbname tbname -w'id >= 1 and id<= 10000'--skip-lock-tables > xxxx.sql
或
1 mysqldump -hhostname -uusername -p dbname tbname --where='unit_id >= 1 and unit_id <= 10000'> ~/xxxx.sql