日期:2014-05-16  浏览次数:20465 次

Mysql 数据库备份和按条件导出表数据

?

一、备份数据库

# mysqldump -u root -p ?dbcurr>/home/20090219.sql

?

mysqldum为备份命令,-u用户,-p密码,dbcurr数据库名,>备份符,/home/20090219.sql存储数据文件的路径。

?

注:如果备份远程数据库,只需在-u前加上-h参数加具体IP地址即可。

?

?

二、还原数据库

# mysql -u root -p dbcurr</home/20090219.sql

?

mysql为还原命令,-u用户,-p密码,dbcurr数据库名,<还原符,/home/20090219.sql还原数据文件的路径。

?

注:如果将数据还原到远程数据库,只需在-u前加上-h参数加具体IP地址即可。

?

# mysql -u root -p dbcurr --force </home/20090219.sql

增加“--force”选项,解决“Duplicate entry”重唯一复键的问题。

?

?

三、按条件导出表中数据

?

?

1、导出SQL语句

# mysqldump -u root -p dbname --no-create-db=TRUE --no-create-info=TRUE --add-drop-table=FALSE --where="id<50" tablename>/home/tablename_less50.sql;

dbname为数据库名,tablename为表明,--where=后的内容为导出条件。

?

2、导出数据内容

mysql> SELECT F_a, F_b INTO OUTFILE '/tmp/result.txt' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM test_table;

?

以下三个为可选:

FIELDS TERMINATED BY ',' 为用逗号分隔每个字段的值

OPTIONALLY ENCLOSED BY '"' 为用双引号包含字段的值

LINES TERMINATED BY '\n' 为用反斜杠n结束一条记录

?

注:test_table后面可以像普通SQL一样,附加上查询条件。

?

?

?