mysql 备份0字节_使用mysqldump备份恢复数据库问题(密码+恢复方面)

博主在面临新上线数据库的自动化备份工作中遇到问题。由于安全考虑,root用户的密码不能直接写入备份脚本,同时需要解决在主库恢复时如何导入从库的增量备份。讨论中提出了使用文件存储加密密码、xtrabackup进行增量备份以及不同引擎的数据恢复方法。
摘要由CSDN通过智能技术生成

本人刚接触mysql不久,假如提的问题很菜,还请大家见谅

情况是这样, 现在在做新上线数据库的自动化备份工作。

1.先说说密码方面:近期由于安全考虑,root本地登录也设置了密码,限制root用户从服务器无密码直接登录数据库。由于之前的数据库从服务器上直接登录的root用户都是没有设置密码的,所以在自动化备份脚本里就不需要把密码直接贴进脚本里,直接执行mysqldump -h127.0.0.1 -Pxxxx  -A database > xxxxxx就行了。

现在的问题是,既然新上线的数据库root用户设置了密码,那么在自动化备份脚本里就需要把密码给写进脚本里,而这又是与安全规范相抵触的(安全规范禁止在脚本和配置文件里直接写入密码),所以本人在苦恼该怎么样不在脚本里写入密码就能执行mysqldupm命令备份数据库,而又能够实现自动化执行,不然每次备份都需要人工手动执行,然后输入密码…..不知大家有何方法?

2.数据的备份本人计划在从库上做(每周一次全量备份+每天一次增量备份),问题是假如主库需要恢复的时候,在主库导入全量备份后,该怎么样导入增量备份文件呢?

原因是导出的增量备份文件的binlog位置点记录的都是从库上binlog的位置,那么在主库上进行恢复的时候该怎么办呢?

解决方案

15

1 脚本设置好权限

2 mysqldump –single-transaction只需要select权限

3 增量备份建议用xtrabackup

15

第1个问题,建议先建个文件,把加密后的密码放到文件里,然后,你的代码从文件读取密码,然后解密,放到命令里,再执行

10

用mysqldump脚本没办法,只能把密码共享出来。所以控制一下能看到这个脚本的人。

10

直接备份文件的方式可以不使用密码。对于myisam引擎的,只需要备份MYD文件,对于innodb引擎只需要备份ibd文件。原因是表结构应该是明确的,不必非要到线上服dump。

需要恢复数据时,先建立表结构,之后对于myisam可以直接用备份MYD覆盖掉建表时创建的MYD,之后执行repair 命令。

对于innodb,假如版本5.6以上,可以先discard掉建表时的表空间,然后把备份的ibd覆盖过去,之后再import导入表空间。

假如是低于5.6就比较麻烦一点,需要修改ibd文件的37字节开始4个字节的表空间id,这就得写个工具了。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明使用mysqldump备份恢复数据库问题(密码+恢复方面)!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值