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

相关文章
相关标签/搜索