Mysql双机热备
Mysql双机热备
1. 准备过程
准备2台服务器,且都已安装Mysql. ,且都创建backup_db数据库和backup_table表
A服务器(master 主服务器) 192.168.1.100 Mysql: 5.6.x
B服务器(slave 从服务器) 192.168.1.200 Mysql: 5.7.x
注意:主服务器的Mysql版本与从服务器的Mysql的版本相同或者小于,因为二进制日志文件的格式可能不同,所以从服务器的版本一定比主服务器的Mysql版本高.
可以使用 msyql --version 查看相关版本。
2. 配置主服务器(master)
分配权限给从服务器登录账号
Mysql>GRANT FILE PRIVILEGES ON *.* TO ‘username’@’slave _ip’ IDENTIFIED BY ‘pssword’ ;
Mysql>GRANT REPLICATION SLAVE,REPLICATION PRIVILEGES ON *.* TO ‘username’@’slave _ip’ IDENTIFIED BY ‘password’ ;
注: username 为 从服务器登录主服务器的账号名
Password 为 账号密码
Slave_ip 为 从服务器IP地址,或者 使用全局地址 %;
例如:
Mysql>GRANT FILE PRIVILEGES ON *.* TO ‘back’@’192.168.1.200’ IDENTIFIED BY ‘backpass’ ;
或者
Mysql>GRANT ALL PRIVILEGES ON *.* TO ‘back’@’192.168.1.200’ IDENTIFIED BY ‘backpass’ ;
配置主服务器Mysql配置文件(/etc/my.cnf)
log-bin= mysqlback # 日志名
binlog-do-db=backup_db #记录二进制日志的数据库
binlog-ignore-db=information_schema #忽略记录的数据库
binlog-ignore-db=mysql #同上
配置完成后重新启动mysql, (centos7启动命令 systemctl restart mysqld.service)
3. 配置从服务器(slave)
修改Mysql配置文件
log-bin=mysqlback #日志名
server_id= 2 # 服务器ID
binlog-ignore-db= information_schema,mysql #忽略记录日志的数据库
replicate-do-db= backup_db #同步的数据库
replicate-ignore-db=mysql #不同步的数据库
log-slave-updates
slave-skip-errors=all
slave-net-timeout=60
注 Mysql 5.5版本需要配置如下,5.5以上的跳过此设置
Master-host= ‘主服务器IP地址’
Master-user=’用户名’ #主服务器分配的
Master-password=’密码’
Master-port=3306 #默认端口,根据实际的修改
重新启动mysql服务,同主服务器方法
4. 查看主从服务器状态
主服务器状态(进入Mysql 命令行方式)
Mysql >show master status;
注: file 和 Position 的值,配置从服务器时会用到。
从服务器状态(进入Mysql命令行方式)
以下操作适合Mysql 5.5版本以上的版本,5.5直接跳过此步
Mysql >stop slave;
Mysql > change master to master_host='192.168.1.100',master_user='back',master_password='backpass',master_log_file='mysqlback.000006',master_log_pos=675;
Mysql > start slave;
产看从服务器状态
Mysql >show slave status \G
如果不成功,请看主服务器的FIEL和Position 是否和 此图的master_log_file和master_log_pos一致,
接下来进行测试吧!
在主服务器的backup_table表中添加数据库,再产看从服务器的此表是否出现了新添加的数据。
祝大家成功!