mysqldump 數據庫備份

mysqldump:數據庫備份程序

 

有3種方式來調用mysqldumphtml

mysqldump [options] db_name [tables]
mysqldump [options] ---database DB1 [DB2 DB3...]
mysqldump [options] --all--database

若是沒有指定任何表或使用了---database或--all--database選項,則轉儲整個數據庫。mysql

 

備份一個數據庫.sql

mysqldump -uroot -p123456 mysql > mysql_backup.sql

這裏備份了database mysql的結構和數據,生成的sql文件不會有建立database mysql的語句。數據庫

 

能夠用一個命令備份mysql,test多個數據庫:服務器

mysqldump -u root -p123456 --database mysql test > my_databases.sql

生成的sql文件有建立database mysql和test的語句ide

 

備份全部數據庫:spa

mysqldump -u root -p123456  --all-databases > all_databases.sql

 

導出mysql這個數據庫的結構htm

mysqldump -u root -p123456 -d --add-drop-table mysql > mysql_define.sql

 

導出一個數據全部數據並用gz壓縮ip

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

 更多參考 http://dev.mysql.com/doc/refman/5.1/zh/client-side-scripts.html#mysqldump

 

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聯合使用。

更多參考 http://dev.mysql.com/doc/refman/5.1/zh/sql-syntax.html#select

 

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表。

 

更多參考 http://dev.mysql.com/doc/refman/5.1/zh/sql-syntax.html#load-data

相關文章
相關標籤/搜索