利用命令就是常用的mysqldump來操作,(mysqldump命令位於mysql/bin/目錄中)
mysqldump工具有大量的選項,部分選項如下表:
選項/Option 作用/Action Performed
--add-drop-table
這個選項將會在每一個表的前面加上DROP TABLE IF EXISTS語句,這樣可以保證導回MySQL資料庫的時候不會出錯,因為每次導回的時候,都會首先檢查表是否存在,存在就刪除
--add-locks
這個選項會在INSERT語句中捆上一個LOCK TABLE和UNLOCK TABLE語句。這就防止在這些記錄被再次匯入資料庫時其他使用者對錶進行的操作
-c or - complete_insert
這個選項使得mysqldump命令給每一個產生INSERT語句加上列(field)的名字。當把資料匯出導另外一個資料庫時這個選項很有用。
--delayed-insert 在INSERT命令中加入DELAY選項
-F or -flush-logs 使用這個選項,在執行匯出之前將會重新整理MySQL伺服器的log.
-f or -force 使用這個選項,即使有錯誤發生,仍然繼續匯出
--full 這個選項把附加資訊也加到CREATE TABLE的語句中
-l or -lock-tables 使用這個選項,匯出表的時候伺服器將會給表加鎖。
-t or -no-create- info
這個選項使的mysqldump命令不建立CREATE TABLE語句,這個選項在您只需要資料而不需要DDL(資料庫定義語句)時很方便。
-d or -no-data 這個選項使的mysqldump命令不建立INSERT語句。
在您只需要DDL語句時,可以使用這個選項。
--opt 此選項將開啟所有會提高檔案匯出速度和創造一個可以更快匯入的檔案的選項。
-q or -quick 這個選項使得MySQL不會把整個匯出的內容讀入記憶體再執行匯出,而是在讀到的時候就寫入導檔案中。
-T path or -tab = path 這個選項將會建立兩個檔案,一個檔案包含DDL語句或者表建立語句,另一個檔案包含資料。DDL檔案被命名為table_name.sql,資料檔案被命名為table_name.txt.路徑名是存放這兩個檔案的目錄。目錄必須已經存在,並且命令的使用者有對檔案的特權。
-w "WHERE Clause" or -where = "Where clause "
如前面所講的,您可以使用這一選項來過篩選將要放到 匯出檔案的資料。
1、匯出資料和表結構:
mysqldump -u使用者名稱 -p密碼 資料庫名 > 資料庫名.sql
#/usr/local/mysql/bin/ mysqldump -uroot -p abc > abc.sql
敲斷行符號後會提示輸入密碼
2、只匯出表結構
mysqldump -u使用者名稱 -p密碼 -d 資料庫名 > 資料庫名.sql
#/usr/local/mysql/bin/ mysqldump -uroot -p -d abc > abc.sql
註:/usr/local/mysql/bin/ ---> mysql的data目錄
二、匯入資料庫
1、首先建空資料庫
mysql>create database abc;
2、匯入資料庫
方法一:
(1)選擇資料庫
mysql>use abc;
(2)設定資料庫編碼
mysql>set names utf8;
(3)匯入資料(注意sql檔案的路徑)
mysql>source /home/abc/abc.sql;
方法二:
mysql -u使用者名稱 -p密碼 資料庫名 < 資料庫名.sql
#mysql -uabc_f -p abc < abc.sql
上面命令的意思是:
登入到mysql伺服器
選擇要匯入的資料庫(use new_db)
設定字元編碼,不要問為什麼,這個是為了防止亂碼
編碼最好一致,不然會出現莫名的錯誤
例如:gbk, gb2312, utf8 …
最後一步就是匯入了,source db_bak.sql
db_bak.sql這個檔案在目前的目錄。可以使用絕對路徑來指明
建議使用第二種方法匯入。
注意:有命令列模式,有sql命令