mysql版本:5.7
系统环境:centos7.6
首先 搭建两台mysql服务器,一台作为主服务器,另外一台作为从服务器,主服务用来写入数据操作,从服务器进行读即查询操作
关闭防火墙以及selinux以防止干扰配置: systemctl stop firewalld
vi /etc/selinux/config 然后修改SELINUX=disabled然后保存退出
主服务器的配置:修改mysql配置文件
[mysqld]
server-id=1
log-bin=/usr/local/mysql/data/mysql-bin.log(打开bin日志,因为主从同步是通过bin日志来实现的)
然后分配用户权限(给予从服务用户来拉去数据的权限)
grant replication slave on *.* to 'repl'(这里的用户改为你自己的创建的用户)@'192.168.1.133'(这里的ip改为你自己的从服务器ip) identified by 'repl123456'
查看日志 记录bin-log的名称以及位置
show master status (第一列的为名称,第二列的数字为位置)
从服务器的配置 :修改配置文件
[mysqld]
read-only=1(配置为只读模式)
server-id=161
replicate-do-db = test(这里为配置需要同步的数据库名称)
relay-log=mysql-relay-bin
配置完成之后,进行保存退出
然后启动mysql,并且登入mysql
再执行 :CHANGE MASTER TO MASTER_HOST='192.168.1.132'(这里改为你的主服务器ip), MASTER_USER='repl'(这里为你刚设置的用户名), MASTER_PASSWORD='repl123456', MASTER_LOG_FILE='mysql-bin.000003'(这里为刚通过查看日志看到的bin日志名称),MASTER_LOG_POS=602(这里为刚通过查看日志看到的bin日志的位置);
然后进行数据复制:start slave
然后查看:show slave status (查看是否配置成功当slave_IO_Running以及Slave_SQL_Running都为Yes时,则代表配置成功)
注意:不要使用root用户登入从服务器进行数据插入,否则会导致数据不一致,最好在从服务器重新创建一个用户,给与查询的权限,在连接使用