导出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命令更改备份文件中表的名字,从而在恢复备份时不会覆盖掉库中原有的同名表

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值