环境:
关闭火墙 selinux
master:
172.16.9.24
CentOS Linux release 7.3.1611 (Core)
slave:
172.16.9.22
CentOS Linux release 7.3.1611 (Core)
主从复制机制:
1、主服务器(master)将变更事件(更新、删除、表结构改变等等)写入二进制日志(master log)。
2、从服务器(slave)的IO线程从主服务器(binlog dump线程)获取二进制日志,并在本地保存一份自己的二进制日志(relay log)
3、从服务器的SQL线程读取本地日志(relay log),并重演变更事件。
MySQL主从同步的作用:
1、可以作为一种备份机制,相当于热备份(在从备份,避免备份期间影响主服务器服务)
2、可以用来做读写分离,均衡数据库负载(主写从读)
3、当主服务器出现问题时,可以切换到从服务器。 MySQL主从同步的步骤:
主数据库master修改:
1、修改MySQL配置:
/etc/my.cnf
log-bin = mysql-bin
server-id = 1
2、重启mysql,创建用于同步的账户:
# 创建slave帐号slave,密码111111 mysql>grant replication slave on . to ‘slave’@’%’ identified by ‘111111’; # 更新数据库权限 mysql>flush privileges; 查询master的状态 mysql> show master status;
+——————+———-+————–+——————+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +——————+———-+————–+——————+ | mysql-bin.000009 | 196 | | | +——————+———-+————–+——————+
注:执行完这个步骤后不要再操作主数据库了,防止主数据库状态值变化
从数据库slave修改:
1、修改MySQL配置:
server-id =2
2、 执行同步命令,设置主数据库ip,同步帐号密码,同步位置 mysql>change master to master_host=’192.168.1.2’,master_user=’slave’,master_password=’111111’,master_log_file=’mysql-bin.000009’,master_log_pos=196; 开启同步功能 mysql>start slave;
检查从数据库状态: mysql> show slave status\G Slave_IO_Running: Yes Slave_SQL_Running: Yes