命令行下具體用法如下: mysqldump -u用戶名 -p密碼 -d 數(shù)據(jù)庫名 表名 腳本名;
1、導(dǎo)出數(shù)據(jù)庫為dbname的表結(jié)構(gòu)(其中用戶名為root,密碼為dbpasswd,生成的腳本名為db.sql)
mysqldump -uroot -pdbpasswd -d dbname >db.sql;
2、導(dǎo)出數(shù)據(jù)庫為dbname某張表(test)結(jié)構(gòu)
mysqldump -uroot -pdbpasswd -d dbname test>db.sql;
3、導(dǎo)出數(shù)據(jù)庫為dbname所有表結(jié)構(gòu)及表數(shù)據(jù)(不加-d)
mysqldump -uroot -pdbpasswd dbname >db.sql;
4锈嫩、導(dǎo)出數(shù)據(jù)庫為dbname某張表(test)結(jié)構(gòu)及表數(shù)據(jù)(不加-d)
mysqldump -uroot -pdbpasswd dbname test>db.sql;
有3種方式來調(diào)用mysqldump:
mysqldump [options] db_name [tables]
mysqldump [options] ---database DB1 [DB2 DB3...]
mysqldump [options] --all--database
如果沒有指定任何表或使用了---database或--all--database選項(xiàng),則轉(zhuǎn)儲(chǔ)整個(gè)數(shù)據(jù)庫挤安。
備份一個(gè)數(shù)據(jù)庫.
mysqldump -uroot -p123456 mysql > mysql_backup.sql
這里備份了database mysql的結(jié)構(gòu)和數(shù)據(jù),生成的sql文件不會(huì)有創(chuàng)建database mysql的語句喜最。
可以用一個(gè)命令備份mysql,test多個(gè)數(shù)據(jù)庫:
mysqldump -u root -p123456 --database mysql test > my_databases.sql
生成的sql文件有創(chuàng)建database mysql和test的語句
備份所有數(shù)據(jù)庫:
mysqldump -u root -p123456 --all-databases > all_databases.sql
導(dǎo)出mysql這個(gè)數(shù)據(jù)庫的結(jié)構(gòu)
mysqldump -u root -p123456 -d --add-drop-table mysql > mysql_define.sql
導(dǎo)出一個(gè)數(shù)據(jù)所有數(shù)據(jù)并用gz壓縮
mysqldump -u root -p123456 mysql | gzip > mysql.sql.gz
可以這樣將轉(zhuǎn)儲(chǔ)文件讀回到服務(wù)器:
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
更多參考 http://dev.mysql.com/doc/refman/5.1/zh/client-side-scripts.html#mysqldump
SELECT...INTO OUTFILE
SELECT...INTO OUTFILE 'file_name'形式的SELECT可以把被選擇的行寫入一個(gè)文件中,該文件被創(chuàng)建到服務(wù)器主機(jī)上澜倦。
SELECT...INTO OUTFILE是LOAD DATA INFILE的補(bǔ)語芥永;用于語句的exort_options部分的語法包括部分FIELDS和LINES子句银萍,這些子句與LOAD DATA INFILE語句同時(shí)使用。
在下面的例子中恤左,生成一個(gè)文件贴唇,各值用逗號(hào)隔開。這種格式可以被許多程序使用
復(fù)制代碼
SELECT * INTO OUTFILE '/tmp/result.txt'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM mysql.user;
復(fù)制代碼
將mysql數(shù)據(jù)庫的user表的數(shù)據(jù)導(dǎo)出到/tmp/result.txt
SELECT...INTO OUTFILE只能導(dǎo)出數(shù)據(jù)飞袋,不能導(dǎo)出結(jié)構(gòu)戳气,一般和load data聯(lián)合使用。
更多參考 http://dev.mysql.com/doc/refman/5.1/zh/sql-syntax.html#select
LOAD DATA INFILE
LOAD DATA INFILE語句用于高速地從一個(gè)文本文件中讀取行巧鸭,并裝入一個(gè)表中瓶您。文件名稱必須為一個(gè)文字字符串。
由character_set_database系統(tǒng)變量指示的字符集被用于解釋文件中的信息纲仍。
復(fù)制代碼
LOAD DATA LOCAL INFILE '/tmp/result.txt' INTO TABLE test.user
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
復(fù)制代碼
把/tmp/result.txt的數(shù)據(jù)導(dǎo)入到test數(shù)據(jù)庫的user表呀袱。
更多參考 http://dev.mysql.com/doc/refman/5.1/zh/sql-syntax.html#load-data