首页 >数据库 >mysql教程 >mysql数据库的备份和还原的总结_MySQL

mysql数据库的备份和还原的总结_MySQL

WBOY
WBOY原创
2016-06-01 13:18:331180浏览

bitsCN.com

平时对数据库的操作基本是对数据表以及表中的数据操作,对数据库的备份和还原用到的较少,今天在此总结下,当作是一个自我学习的过程。

1,数据库的备份

用mysqldump命令,原因:该工具在多个存储引擎上使用,此外其备份的数据库文件只要进行简单的修改便可在sql server和sybase上使用。

格式:mysqldump -h localhost(填数据所在的主机名) -u root(用户名) -p db_name(要备份的数据库名)>path(要备份的地址)

例如:打开dos窗输入 mysqldump -u root -p db_name>E:/11.sql;

如果只想单独备份数据库中的某个表就在数据库名后加表名就好

例如备份db_name数据库中的table1表:mysqldump -u root -p db_nametable1>E:/11.sql;

如果想备份多个数据库,则加入关键字--databases 如下:mysqldump -u root -p--databases db_name1db_name2>E:/db.sql; 实现了对db_name1和数据库db_name2的备份。

此外需要特别注意的一点时,不加--databases对数据库进行备份后,如过被备份的数据库直接被删除后,无法直接用备份进行恢复,因为 “mysqldump -u root -p db_name>E:/db.sql”只备份了db_name数据库下的所有表,文件中不包括创建数据库的CREATE DATABASE语句,因此如果把db_name删了使用db.sql还原时会出现:“No database selected”的错误信息,因此在还原前必须先创建db_name数据库,并用use db_name选中。或者在备份时,直接用mysqldump -u root -p --databases db_name>db.sql,这样不仅备份了所用数据库下的表结构,而且包括了创建数据库的语句。

2,数据的还原

如果没有登录mysql数据库,mysql -h localhost -u root -p db_name(数据库名)

如果已经登录了mysql里面则通过source语句还原:先在mysql中选择要还原的数据库,即use db_name; 然后执行source filename.sql(文件路径名)

3,表的导入导出

mysql关键的操作是对数据操作,而数据是存储在表中,因此对数据的直接操作是通过表的导入导出实现的,表的导入与导出有多种方法下面我们就总结一下:

一、已登录mysql,用select...into outfile导出文件,用load data infile导入文件

格式:use db_name 进入某个数据库

select * from table_name into outfile "filepath.txt"; 将表table_name导出filepath路径下的文件中

load data infile "filepath.txt" into table table_name; 将filepath.txt的数据导入到表table_name中;

上面这两条语句都有一些可选项[options]来规定导入、导出时数据的格式,如:

select * from table_name into outfile "filepath.txt"

fields

terminated by ','

enclosed by ' /" '

escaped by ' /' '

lines

terminated by '/r/n'

staring by '>'

fields下的terminated by ','表示导出的数据字段之间用,相隔,enclosed by ' /" ' 表示每个字段被双引号包围,escaped by ' /' '表示将转义字符定义为单引号。lines下的terminated by '/r/n'表示每行记录以回车换行符结尾,staring by '>'表示每一行以‘ > ’字符开始。例子如下:

不加option的导出数据格式为

1Tale of AAA Dickes28 1995novel 112EmmaT Jane lura40 1993drama 22

加了如上option的导出数据格式为

> "1","Tale of AAA",...
> "2","EmmaT",...

 

二 不登录mysql

用mysqldump命令导出文件,感觉跟备份数据库相似,命令如下:

mysqldump -T path dbname table_name -u root -p

path为导出的路径,dbname为数据库名 table_name为数据库中的表名。

也可像select ... into outfile 一样加option可选项如下:

mysqldump -T path dbname table_name -u root -p --fields-terminated-by=,--fields-enclosed-by=/"--fields-escaped-by=?--lines-terminated-by=/r/n

用mysql命令导出数据库

mysql -u root -p --execute="select 语句" dbname>filename.txt

同样可以用mysql导出html格式的数据,使用--html选项即可

mysql -u root -p --html --execute="select 语句" dbname>filename.html

mysql -u root -p --xml --execute="select 语句" dbname>filename.xml

用mysqlimport导入文本文件

mysqlimport -u root -p db_name filename.txt

也可以带有可选参数如mysqldump的参数。

mysqlimport -u root -p db_name filename.txt --fields-terminate-by=,--fields-enlined-by=/"--fields-escaped-by=?--lines-termminate-by=/ r/n

 

 

bitsCN.com
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn