mysql資料匯入 匯出方法彙總

2021-09-02 10:03:31 字數 3884 閱讀 7311

由於公司的mysql是搭建在伺服器上,為了避免對伺服器進行直接改動,我選用了遠端匯出和匯入mysql的資料。

讓我們把目光看到上圖,由於實際資料庫中neem_hanyang下的兩個表alarmdata_h和commerr是空表,我們要做的工作就是把neem_jabil下的兩個表的資料導到neem_hamyang去。

要滿足上面的需求,我們必須匯出neem_jabil下的兩個表alarmdata_h和commerr的資料,在此之前,先讓我們把目錄切換至mysql的安裝目錄,筆者的是c:\program files (x86)\mysql\mysql workbench 5.2 ce。如果你裝的是mysql server版,那麼應該是類似這種c:\program files\mysql\mysql server 5.5,這時請你進入到它的子資料夾bin下面。

假設你現在用的是windows系統,那麼讓我們在dos下輸入cd c:\program files (x86)\mysql\mysql workbench 5.2 ce,如果你是裝的是server版,那麼輸入cd c:\program files\mysql\mysql server 5.5\bin。

看到紅圈圈出來的部分,這就是我們的兩位主角mysql和mysqldump,匯出資料用mysqldump,匯入資料使用mysql

接下來我們就可以在dos下使用mysql或是mysqldump命令來進行資料庫的匯入匯出操作了。

mysqldump的匯出語法如下:

mysqldump -h [-p] -u -p [--default-character-set=charset] database [tablename] > 

注:-h和[hostname]之間並沒有空格相連,後同之,擴起來的為可選項,可不填

mysqldump -h192.168.0.3 -unikey -p123456 --default-character-set=utf8 neem_jabil commerr > d:/jabil1.sql

通過上面的匯出語句,將會在d盤下面建立乙個jabil.sql指令碼檔案,這個指令碼檔案是可執行的,它包含了commerr表的建表細節以及其所有的資料。這就是匯出命令的特點,它不但會匯出資料,還會匯出表或者資料庫的結構資訊。另外如果不帶"

> "這一部分路徑資訊,mysqldump匯出命令或把內容列印在dos介面。

mysql的匯入有兩種語法要介紹,分別是mysql匯入法和source匯入法:

2.2.1 mysql匯入

顧名思義,這種方法則還是用mysql這個主角來匯入,語法規範如下:

mysql -h [-p] -u -p [--default-character-set=charset] database [tablename] <
(此處原文是錯誤的,在此修正,原文說的是通過mysqldump進行匯入)

這種匯入方式實質就是執行前面所匯出的那個sql指令碼檔案。

mysql -h192.168.0.3 -unikey -p123456 -p3369 databasename tablename < d:/data.sql
2.2.2 source匯入

source匯入不同於前面,它是乙個sql命令,必須登入進入mysql在命令列那裡才可以執行,而mysqldump實則是乙個管理工具,無須登入mysq在命令列那裡執行,只須在dos下執行即可。回到上面例子所處的dos介面,我們可以用下面的命令來登入mysql:

mysql -h [-p] -u -p
舉例,我們登入乙個遠端mysql可以用下面的命令:

mysql -h192.168.0.3 -unikey -p123456
登入之後,進入我們要作用的資料庫:

mysql > use neem_hanyang;
然後我們可以使用source命令來執行前面匯出的sql指令碼實現資料的匯入:

mysql > source d:/jabil.sql;
2.2.3 二者對比

mysqldump雖然好用,但它實際上也是運用先登入在執行指令碼的策略,只是其中的細節我們無需關心,但是,因為其中有很多遠端連線細節,我們有可能遭遇中文亂碼問題。

關於為何在使用mysqldump做匯入時會出現中文亂碼問題,我們先用mysql命令登入,然後

輸入下面的命令:

是否注意到紅圈部分的編碼是latin1?latin1是mysql的預設字符集,可能由於某種原因你沒有指定預設編碼,它就會預設為latin1了,這就是你中文亂碼出現的原因。

所以筆者個人建議,如果是作資料匯入的話,寧可多做乙個步驟,先登入後使用source命令來匯入。

在dos下使用mysqldump --help的命令我們可以看到mysqldump更多更詳細的使用方法,下面挑幾個命令進行講解。

例如--opt命令的使用,預設情況下--opt是會被呼叫:

mysqldump -h192.168.0.3 -unikey -p123456 --default-character-set=utf8 --opt neem_jabil commerr_h > d:/jabil3.sql
where命令的原理其實就是sql的where條件限定,格式規範是:--where="字段條件",如:--where="id>1",需要注意的是id這個字段必須是真實存在的,否則會報sql錯誤如下。

具體的--where**例子如下:

mysqldump -h192.168.0.3 -unikey -p123456 --default-character-set=utf8 --where="errtype>0" neem_jabil commerr_h > d:/jabil3.sql
顧名思義,--no-data的作用就是只匯出表結構而不匯出資料,舉例如下:  

mysqldump -h192.168.0.3 -unikey -p123456 --default-character-set=utf8 --no-data neem_jabil commerr_h > d:/jabil3.sql
1. mysql匯入匯出工具mysqldump和source命令用法詳解

二、mysql本地匯入

1.匯出整個資料庫

mysqldump -u 使用者名稱 -p 資料庫名 > 匯出的檔名

2.匯出乙個表

mysqldump -u 使用者名稱 -p 資料庫名 表名》 匯出的檔名

3.匯出乙個資料庫結構

-d 沒有資料 --add-drop-table 在每個create語句之前增加乙個drop table

4.匯入資料庫

常用source 命令

進入mysql資料庫控制台,

如mysql -u root -p

mysql>use 資料庫

然後使用source命令,後面引數為指令碼檔案(如這裡用到的.sql)

mysql>source d:wcnc_db.sql

匯出匯入MySql資料

一 匯出資料庫 進入命令列,轉到mysql的安裝目錄的bin資料夾下 輸入下面的命令 1.匯出整個資料庫 mysqldump u 使用者名稱 p 資料庫名 匯出的檔名 mysqldump u root p db db.sql 然後要求你輸入密碼,輸入正確後便可以在該資料夾下找到db.sql檔案 二 ...

mysql資料匯入匯出

1.匯出資料 mysqldump 資料庫名 資料庫備份名 mysqldump a u使用者名稱 p密碼 資料庫名 資料庫備份名 mysqldump d a add drop table uroot p sql a.匯出結構不匯出資料 mysqldump opt d databases u root ...

MySQL資料匯出匯入

匯出整個資料庫結構和資料 mysqldump h localhost uroot p123456 database dump.sql 匯出單個資料表結構和資料 mysqldump h localhost uroot p123456 database table dump.sql 匯出整個資料庫結構 ...