mysql数据库的备份和还原的总结
平时对数据库的操作基本是对数据表以及表中的数据操作,对数据库的备份和还原用到的较少,今天在此总结下,当作是一个自我学习的过程。
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(数据库名)<filename.sql(备份文件名)
如果已经登录了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-terminated-by=,--fields-enclosed-by=\"--fields-escaped-by=?--lines-terminated-by=\r\n
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。