MySQL数据库主从备份
目录
【MySQL】数据库主从备份
参考资料
热备份的条件
(1) mysql的版本都要高于3.2。
(2) 作为从数据库的数据库版本可以高于主服务器数据库的版本,但是不可以低于主服务器的数据库版本。尽量推荐两者版本相同。
范例环境
操作系统: windows7
MySQL版本: 5.7.18
服务器A的IP: 192.168.68.56
服务器B的IP: 192.168.68.139
主从备份实现
增加一个用户账号(backup,密码centerm)作为同步用户账号
A: mysql> Grant replication slave on *.* to backup@'192.168.68.139' identified by 'centerm';
B: mysql> Grant replication slave on *.* to backup@'192.168.68.56' identified by 'centerm';
注: (1). mysql> Grant 权限 on . to 用户账号@’允许访问的IP’ identified by ‘用户密码’;
增加一个数据库(news)作为同步数据库
A & B : create database news;
修改主数据库的my.ini配置
在原my.ini文件下添加:
server-id=1
#设置需要记录log 可以设置log-bin=backuplog 设置日志文件的名称
log-bin=backuplog
#日志文件在mysql数据库文件夹根目录下,mysql将建立不同扩展名,文件名为backuplog的几个日志文件。
#指定需要日志的数据库
binlog-do-db=news
#binlog-do-db=xxx
#binlog-do-db=yyy
获取file和position字段
完成之后保存,然后重启服务器net stop mysql & net start mysql
进入mysql数据库,输入命令:
show master status;
记一下file,position两个字段(一般file会是mysql-bin.000006)
修改从数据库的my.ini配置
在原my.ini文件下添加:
server-id=2 #只同步news库 replicate-do-db=news relay-log-index=slave-relay-bin.index relay-log=slave-relay-bin
启动备份
保存之后重启数据库
进入mysql,
输入命令:
change master to master_host='192.168.68.56',master_user='backup',master_password='centerm',master_log_file='mysql-bin.000006',master_log_pos=1606;
mysql-bin.000006→→→之前记录的file
1606→→→之前记录的position
输入命令:
start slave;
输入命令:
show slave status;
完成
在主数据库添加表查看是否同步到备数据库
一些问题
- 从数据库不要进行写数据操作,影响复制。
- 出了错的话要看错误日志,在data目录下的一个.err文件,查看【error】级别日志,然后解决就好啦。
- 如果slave_IO_running 为connecting 检查IP是否正确,用户名密码是否正确
- 如果slave_IO_running 为no,检查数据库版本号,看错误日志
- 如果slave_SQL_Running 为no,检查时候进行了写操作,看错误日志
- SET GLOBAL log_bin_trust_function_creators = 1;