Heim >Datenbank >MySQL-Tutorial >mysqldump:数据库备份程序

mysqldump:数据库备份程序

WBOY
WBOYOriginal
2016-06-07 15:29:301245Durchsuche

mysqldump:数据库备份程序 有 3 种方式来调用 mysqldump : mysqldump [ options ] db_name [ tables ] mysqldump [ options ] -- -database DB1 [DB2 DB3...] mysqldump [ options ] -- all--database 如果没有指定任何表或使用了 ---database 或 --all--d

mysqldump:数据库备份程序

 

3种方式来调用mysqldump

mysqldump <span>[</span><span>options</span><span>]</span> <span>db_name</span> <span>[</span><span>tables</span><span>]</span><span>
mysqldump </span><span>[</span><span>options</span><span>]</span> <span>--</span><span>-database DB1 [DB2 DB3...]</span>
mysqldump <span>[</span><span>options</span><span>]</span> <span>--</span><span>all--database</span>

如果没有指定任何表或使用了---database--all--database选项,则转储整个数据库。

 

备份一个数据库.

mysqldump <span>-</span>uroot <span>-</span>p123456 mysql <span>></span> mysql_backup.sql

这里备份了database mysql的结构和数据,生成的sql文件不会有创建database mysql的语句。

 

可以用一个命令备份mysql,test多个数据库:

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

生成的sql文件有创建database mysql和test的语句

 

备份所有数据库

mysqldump <span>-</span>u root <span>-</span>p123456  <span>--</span><span>all-databases > all_databases.sql</span>

 

导出mysql这个数据库的结构

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

 

导出一个数据所有数据并用gz压缩

mysqldump <span>-</span>u root <span>-</span>p123456 mysql <span>|</span> gzip <span>></span> mysql.sql.gz

 

 

可以这样将转储文件读回到服务器:

mysql <span>db_name</span> <span> <span>backup</span><span>-</span><span>file</span><span>.sql
mysql </span><span>-</span>e "source <span>/</span>path<span>-</span><span>to</span><span>--</span><span>backup/backup-file.sql" db_name</span></span>

或者从gz文件中还原

gunzip <span>-</span>f <span> mysql.sql.gz <span>|</span> mysql <span>-</span>u root <span>-</span>p123456 test</span>

 更多参考 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 OUTFILELOAD DATA INFILE的补语;用于语句的exort_options部分的语法包括部分FIELDSLINES子句,这些子句与LOAD DATA INFILE语句同时使用。

在下面的例子中,生成一个文件,各值用逗号隔开。这种格式可以被许多程序使用

<span>SELECT</span> <span>*</span> <span>INTO</span> OUTFILE <span>'</span><span>/tmp/result.txt</span><span>'</span><span> 
FIELDS TERMINATED </span><span>BY</span> <span>'</span><span>,</span><span>'</span><span> 
OPTIONALLY ENCLOSED </span><span>BY</span> <span>'</span><span>"</span><span>'</span><span> 
LINES TERMINATED </span><span>BY</span> <span>'</span><span>\n</span><span>'</span>
<span>FROM</span> mysql.<span>user</span>;

将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系统变量指示的字符集被用于解释文件中的信息。

<span>LOAD</span> DATA LOCAL INFILE <span>'</span><span>/tmp/result.txt' INTO TABLE test.user
FIELDS TERMINATED BY </span><span>'</span>,<span>'</span><span> 
OPTIONALLY ENCLOSED BY </span><span>'</span>"<span>'</span><span> 
LINES TERMINATED BY </span><span>'</span>\n<span>'</span>

把/tmp/result.txt的数据导入到test数据库的user表。

 

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


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn