环境centos7.6
mysql5.7
两台服务器首先同时安装mysql5.7
1.两台服务器做时间同步
yum -y install ntp ntpdate
ntpdate cn.pool.ntp.org
hwclock --systohc
2.关闭防火墙,关闭SELinux(两个服务器都关)
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
3.server1配置
配置文件
vim /etc/my.cnf
[mysqld]
server_id=27
log-bin=mysql-bin
重启服务:
systemctl stop mysql
systemctl start mysql
创建一个用于让从数据库连接的用户
mysql -uroot -ppassword(password就是数据库的密码,但是一般为了安全是mysql -uroot -p回车后再输入密码)
reset master;
create user ‘copy’@‘192.168.2.%’ identified with mysql_native_password by ‘ABC123@com’;
grant replication slave on . to ‘copy’@‘192.168.2.%’;
注:第一个copy是创建的用户名字,192.168.2.%是该用户可以被192.168.2下的所有网段使用,ABC123@com是密码
刷新授权表信息
flush privileges;
获取主节点当前binary log文件名和位置(position)
show master status;
会有File和Position信息
4.server2配置
配置文件
vim /etc/my.cnf
[mysqld]
server_id=66
log-bin=mysql-bin
重启服务:
systemctl stop mysql
systemctl start mysql
创建一个用于让从数据库连接的用户
mysql -uroot -ppassword(password就是数据库的密码,但是一般为了安全是mysql -uroot -p回车后再输入密码)
reset master;
create user ‘copy’@‘192.168.2.%’ identified with mysql_native_password by ‘ABC123@com’;
grant replication slave on . to ‘copy’@‘192.168.2.%’;
注:第一个copy是创建的用户名字,192.168.2.%是该用户可以被192.168.2下的所有网段使用,ABC123@com是密码
刷新授权表信息
flush privileges;
获取主节点当前binary log文件名和位置(position)
show master status;
会有File和Position信息
5.server1
在从(Slave)节点上设置server2节点参数
CHANGE MASTER TO
MASTER_HOST='192.168.2.232,(主数据库ip)
MASTER_USER=‘copy’,(前面设置好的用户名字)
MASTER_PASSWORD=‘ABC123@com’,(密码)
MASTER_LOG_FILE=‘mysql-bin.000001’,(前面的File信息)
MASTER_LOG_POS=825; (前面的Position信息)
start slave;
show slave status\G
6.server2
在从(Slave)节点上设置server1节点参数
CHANGE MASTER TO
MASTER_HOST='192.168.2.138,(主数据库ip)
MASTER_USER=‘copy’,(前面设置好的用户名字)
MASTER_PASSWORD=‘ABC123@com’,(密码)
MASTER_LOG_FILE=‘mysql-bin.00000’,(前面的File信息)
MASTER_LOG_POS=154; (前面的Position信息)
start slave;
show slave status\G
当
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
时,则配置成功
注:在做的过程中遇到了一个问题
在数据库中进行show master status;操作时
server1和server2的File和Position信息是一样的
在随便一个server中
先关闭MySQL服务
systemctl stop mysqld
然后删除或者移走auto.cnf文件
mv /var/lib/mysql/auto.cnf auto.cnf
最后重启msyql服务
systemctl start mysqld
然后接着做就好了