导出MySQL数据与数据备份
导出MySQL数据与数据备份
数据的导出
例如导出整张表
mysql>
select * from City into outfile ' /tmp/city.txt' fields by ', ';#不指定的情况下使用制表符分隔
#表示将City表中的内容导出到tmp路径下的city.txt中,同理也可以按条件导出
select * from City into outfile '/tmp/city_1.txt' fields terminated by ',' ;#此句表示用逗号分隔
select * from City into outfile '/tmp/city_2.txt' fields terminated by ',' encloesd by ' " '; #此句表示用双引号包裹字段,且用逗号分隔字段(主要处理字段中包括逗号的情况)
第一句执行后去对应路径查看city.sql的结果如图,字段之间使用Tab分隔查看city_2.sql的内容,使用逗号分隔字段
city_2.sql的内容也和预期一样,使用双引号包裹字段,使用,分隔字段
数据的导入
mysql>
create table city_tx like City;#首先创建一个空表,与刚导出数据的表结构相同
load data infile '/tmp/city.sql' into table city_tx;
这两条语句执行完之后,就把city中导出的数据又导入新表city_tx中了
但是要注意的是,导入的方式需要与你导出的方式对应,比如导出时使用引号包裹,使用逗号分隔,那么导入时也要按照这样来
例如 之前第三种引号包裹,逗号分隔的导出方式
mysql>
create table city_tx2 like City
load data infile '/tmp/city_2.sql' into table city_tx2 fields terminated by '.' enclosed by '"';
#才可以正确导入
当字段为空时导出的数据中使用\N填充
数据库备份
热备份,冷备份,温备份
简单来讲,热备份就是在备份数据库时,不会限制其他用户对数据库的读取和修改数据的操作。
冷备份就是在备份期间,完全禁止其他用户对数据库的的读取和修改操作。
温备份介于两者中间,允许其他用户对数据库进行读取操作
逻辑备份和物理备份
物理备份
简单讲就是将数据库文件备份,速度快,在需要比较大的迁移时需要,主要使用mysqlbackup ,mysqlbackup对于InnoDB引擎时热备份,其他引擎为温备份。会把数据库目录下的所有文件都进行拷贝。 还有mysqlhotcopy,mysqlhotcopy用于备份MyISAM和ARCHIVE表,但仅限于Uinx系统下。
逻辑备份
把数据库的数据使用SQL语句的形式备份下来,适用于数据量不大的情况通常在30GB以上就需要考虑物理备份。优点时可以跨平台,因为是保存成SQL语句的形式,所以很灵活。
一般使用mysqldump进行逻辑备份
shell>
mysqldump -u用户名 -p密码 --database 数据库名 > 路径
#例如
mysqldump -uroot -p --databasa mysql > /tmp/loadbase.sql #把mysql库进行逻辑备份到指定的路径中
mysqldump -uroot -p -d --databasa mysql > /tmp/loadbase2.sql#只备份数据库结构,不备份数据
mysqldump -uroot -p - mysql user > /tmp/loadtable.sql#备份mysql库中的user表
mysqldump常用的命令项
在对应目录中查看生成的备份文件如图,可以看到对应的Mysql版本,使用的引擎,库名,以及恢复库中的表的SQL语句。
需要注意的是,其中的SQL语句会在恢复中检查是否有同名的表,如果存在同名的表会被删掉。
数据恢复
mysql>
source '路径'
#例如
source /tmp/loadbase.sql
source /tmp/loadtable.sql
也可以使用vi命令更改备份文件中表的名字,从而在恢复备份时不会覆盖掉库中原有的同名表
上一篇: mysql基础8-运算符、函数、索引
下一篇: python 双向循环链表
推荐阅读
-
导出MySQL数据与数据备份
-
Android Rsa数据加解密的介绍与使用示例
-
数据结构与算法分析之单链表的建立,插入和删除操作。
-
mysql基础--查询数据库操作
-
Grid或者DataTable中数据导出为Excel原来这么简单
-
php mysql操作mysql_connect连接数据库实例详解
-
MySQL基础(一):库操作、表操作与数据类型
-
使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
-
Java链接MySQL数据库 博客分类: JavaMySQL mysqljavadatabase数据库
-
让Java后台MySQL数据库能够支持emoji表情的方法