mysql数据库的备份和还原的总结_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(数据库名) 如果已经登录了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",... 二 不登录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
> "2","EmmaT",...