mysqldump工具很多方面類似相反作用的工具mysqlimport。它們有一些同樣的選項。但mysqldump能夠做更多的事情。它可以把整個數據庫裝載到一個單獨的文本文件中。這個文件包含有所有重建您的數據庫所需要的SQL命令。這個命令取得所有的模式(Schema,後面有解釋)並且將其轉換成DDL語法(CREATE語句,即數據庫定義語句),取得所有的數據,並且從這些數據中創建INSERT語句。這個工具將您的數據庫中所有的設計倒轉。因為所有的東西都被包含到了一個文本文件中。這個文本文件可以用一個簡單的批處理和一個合適SQL語句導回到MySQL中。這個工具令人難以置信地簡單而快速。決不會有半點讓人頭疼地地方。
mysqldump是mysql用於轉存儲數據庫的實用程序。它主要產生一個SQL腳本,其中包含從頭重新創建數據庫所必需的命令CREATE TABLE INSERT等。下面就讓我們一起學習吧!
一、mysqldump:數據庫備份程序
有3種方式來調用mysqldump:
mysqldump [options] db_name [tables]
mysqldump [options] ---database DB1 [DB2 DB3...]
mysqldump [options] --all--database
如果沒有指定任何表或使用了---database或--all--database選項,則轉儲整個數據庫。
1、備份一個數據庫.
mysqldump -uroot -p123456 mysql > mysql_backup.sql
這裡備份了database mysql的結構和數據,生成的sql文件不會有創建database mysql的語句。
2、可以用一個命令備份mysql,test多個數據庫:
mysqldump -u root -p123456 --database mysql test > my_databases.sql
生成的sql文件有創建database mysql和test的語句
3、備份所有數據庫:
mysqldump -u root -p123456 --all-databases > all_databases.sql
4、導出mysql這個數據庫的結構
mysqldump -u root -p123456 -d --add-drop-table mysql > mysql_define.sql
5、導出一個數據所有數據並用gz壓縮
mysqldump -u root -p123456 mysql | gzip > mysql.sql.gz
可以這樣將轉儲文件讀回到服務器:
mysql db_name < backup-file.sql
mysql -e "source /path-to--backup/backup-file.sql" db_name
或者從gz文件中還原
gunzip -f < mysql.sql.gz | mysql -u root -p123456 test
二、SELECT...INTO OUTFILE
SELECT...INTO OUTFILE 'file_name'形式的SELECT可以把被選擇的行寫入一個文件中,該文件被創建到服務器主機上。
SELECT...INTO OUTFILE是LOAD DATA INFILE的補語;用於語句的exort_options部分的語法包括部分FIELDS和LINES子句,這些子句與LOAD DATA INFILE語句同時使用。
在下面的例子中,生成一個文件,各值用逗號隔開。這種格式可以被許多程序使用
SELECT * INTO OUTFILE '/tmp/result.txt'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM mysql.user;
將mysql數據庫的user表的數據導出到/tmp/result.txt
SELECT...INTO OUTFILE只能導出數據,不能導出結構,一般和load data聯合使用。
三、LOAD DATA INFILE
LOAD DATA INFILE語句用於高速地從一個文本文件中讀取行,並裝入一個表中。文件名稱必須為一個文字字符串。
由character_set_database系統變量指示的字符集被用於解釋文件中的信息。
LOAD DATA LOCAL INFILE '/tmp/result.txt' INTO TABLE test.user
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
把/tmp/result.txt的數據導入到test數據庫的user表。
四、導入導出格式
FIELDS TERMINATED BY ',' 字段間分割符采用,號
OPTIONALLY ENCLOSED BY '"' 用"號將字段包圍,對數值型無效
LINES TERMINATED BY '\n' 記錄間隔符采用\n換行符
在CMD命令下導入與導出MYSQL數據庫實例詳解
1.導入數據庫 (本地)
例如你安裝xampp在本地D盤,(步驟都一樣,注意位置)導入數據庫步驟如下:
d:
cd xampp\mysql\bin\
xampp\mysql\bin\mysql -u數據庫名 -p密碼 //
mysql>use net2003; //找出要導入數據庫
mysql>source D:\數據庫位置 即可
--------------------------------------------------------------------------------------
2.導出數據庫 (本地)
d:
cd xampp\mysql\bin\
mysql -h服務器 -u用戶 -p密碼 要導入的數據庫名 <備份文件.sql
mysqldump -u數據庫名 -p密碼 數據庫> net2003.sql 數據庫 即可
然後運行 explorer . 表示打開已導出數據庫的位置,找到導出的數據庫
到這就全完工了.
--------------------------------------------------------------------------------------
導入時出現foreign key關聯表問題,解決方法:
運行source file.sql前運行:
use databasename;後
SET FOREIGN_KEY_CHECKS = 0;
導入成功後運行:
SET FOREIGN_KEY_CHECKS = 1;