mysql备份与还原

来源:互联网 发布:淘宝网美二玖洗衣皂 编辑:程序博客网 时间:2024/05/18 17:27

备份文件:

文件开头记录了MySQL的版本、备份的主机名和数据库名。文件中,以“-- ”开头的的都是sql语言的注释(不会被执行)。但是,以  “/*!40101" 等形式开头 的是与MySQL有关的注释。40101 是MySQL数据库的版本号,这里就表示MySQL 4.1.1 。如果还原数据时,MySQL的版本比4.1.1高, “/*!40101" 和”*/"之间的内容被当作  sql命令来执行 。如果比4.1.1低, “/*!40101" 和”*/"之间的内容被当作  注释。

备份

1.备份一个数据库:

mysqldump -u username -p databasename table1 table2...>backname.sql

如:mysqldump -u root -p test student teacher>E:\backup.sql

2.备份多个数据库:

mysqldump -u username -p --databases databasenamedatabasename2...>backname.sql

如:mysqldump -u root -p --databases  test mysql>E:\backup.sql

3.备份所有数据库:

mysqldump -u username -p --all-databases>backname.sql

如:mysqldump -u root -p --all-databases >E:\backup.sql

还原

mysql -u root -p [databasename]<backup.sql



数据库的迁移

1.相同版本的MySQL数据库之间的迁移

mysqldump -h host1 -u root --password=password1 --all-databases |

mysql -h host2 -u root --password=password2

其中“|”符号表示管道,其作用是将mysqldump备份的文件发送给mysql命令。

2.不同版本的MySQL数据库之间的迁移

同上

3.不同数据库之间的迁移

参考http://tech.ccidnet.com/zt/qianyi/。



表的导入和导出:

1.用SELECT ... INTO OUTFILE 导出文本文件

语法:SELECT [列名] FROM table [where 语句] INTO OUTFILE '目标文件' [OPTIOM];

其中OPTION 参数有6个常用选项:

FIELDS  TERMINATED  BY   '字符串'  :设置字符串为字段的分隔符,默认值是“\t“

FIELDS ENCLOSED  BY  '字符' :设置字符来括上字段的值。默认情况下不使用任何符号;

FIELDS  OPTIONALLY  ENCLOSED  BY   '字符' :设置字符来括上CHAR,VARCHAR 和TEXT等字符型字段。默认情况下不使用任何符号;

FIELDS  ESCAPED  BY    '字符':设置转义字符,默认值为"\";

LINES  STARTING  BY   '字符串' :设置每行开头的字符,默认情况下不使用任何符号;

LINES  TERMINATED  BY  '字符串' :设置每行的结束符,默认值为"\n" 。

如:

SELECT * FROM test.student INTO OUTFILE 'E:/student.txt' FIELDS  TERMINATED  BY  '\、'  OPTIONALLY  ENCLOSED  BY '\"'  LINES  STARTING  BY  '\>'  TERMINATED  BY  '\R\N';


2.用mysqldump命令导出文本文件

语法: mysqldump -u root -pPassword  -T 目标目录 databasename table [option];


如:

mysqldump -u root -pmysql -T E:\  test student "--fields-terminated-by=," "--fields-optionally-enclosed-by="";

导出xml格式的文件:

语法: mysqldump -u root -pPassword   --xml |-X databasename table>E:/name.xml;

其中 使用--xml 或-X 选项就可以导出xml格式的文件。 


3.用mysql命令导出文本文件

语法: mysql -u root -pPassword -e "SELECT 语句” databasename >E:/name.txt;

导出xml格式的文件:

语法: mysql -u root -pPassword   --xml |-X -e "SELECT 语句” databasename >E:/name.txt;

其中 使用--xml 或-X 选项就可以导出xml格式的文件。 


导出html格式的文件:

语法: mysql -u root -pPassword   --html|-H -e "SELECT 语句” databasename >E:/name.txt;

其中 使用--html或-H选项就可以导出html格式的文件。 


4.用LOAD DATA INFILE 方式导入文本文件

语法: LOAD DATA  INFILE file INTO TABLE table [OPTION];

如: LOAD DATA  INFILE ’E:\student.txt' INTO TABLE student FIELDS  TERMINATED  BY  ','  OPTIONALLY  ENCLOSED  BY '"' ;


5.用mysqlimport命令导入文本文件:

语法: mysqlimport -u root -pPassword  [--LOCAL] databasename file [OPTION];

如:

 mysqlimport -u root -pmysql  test E:\  test student"--fields-terminated-by=," "--fields-optionally-enclosed-by="";