mysql5.7安装好,注意,最好每台机直接安装,如果是通过VM克隆测试机的话,需要修改三台机的mysqlUUID,不然其中一台会同步不了,应用场景,需要一台主服务器192.168.0.6主要做写入,同步到192.168.0.7读取数据和192.168.0.10做备份数据。
server1 192.168.0.6 主 mysql5.7 centos7
server2 192.168.07 从 mysql5.7 centos7
server3 192.168.0.10 从 mysql5.7 centos7
三台服务器的root密码都是loshub123258,server2访问server1的远程用户为loshub7密码为loshub123258(用户名和密码你也可以自定义),server3访问server1的远程用户为loshub10密码为loshub123258(用户名和密码你也可以自定义)。
分别打开server1、2、3的防火墙,在生产环境中建议加强密码和防火墙

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload

编辑各自的mysql的配置文件/etc/my.cnf
在[mysqld]
server1的配置代码

server_id=6
#binlog-do-db=home
#需要备份的数据库,一行一个,前面加#就是备份所有
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
# 不需要备份的数据库
log-bin=mysql-bin
# 开启二进制日志功能
expire-logs-days=100
#日志时间,100天

server2的配置代码

server_id=7
#binlog-do-db=home
# 需要备份的数据库
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
# 不需要备份的数据库
log-bin=mysql7-bin
# 开启二进制日志功能,也可以不开启
expire-logs-days=100
#日志时间,100天
slave-skip-errors=all

server3的配置代码

server_id=10
#binlog-do-db=home
# 需要备份的数据库
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
# 不需要备份的数据库
log-bin=mysql10-bin
# 开启二进制日志功能,也可以不开启
expire-logs-days=100
#日志时间,100天
slave-skip-errors=all

现在分别重启server1、2、3的mysql

systemctl restart mysqld.service

进入server1的mysql

mysql -uroot -ploshub123258

创建远程访问用户并退出

GRANT REPLICATION SLAVE ON *.* TO 'loshub7'@'192.168.0.7' IDENTIFIED BY 'loshub123258';
GRANT REPLICATION SLAVE ON *.* TO 'loshub10'@'192.168.0.10' IDENTIFIED BY 'loshub123258';
quit

接着重启mysql并进入mysql

systemctl restart mysqld.service
mysql -uroot -ploshub123258

查看记录值

show master status\G;

显示

mysql> show master status\G;
*************************** 1. row ***************************
             File: mysql-bin.000002
         Position: 154
     Binlog_Do_DB:
 Binlog_Ignore_DB: mysql,information_schema,performance_schema,sys
Executed_Gtid_Set:
1 row in set (0.01 sec)

记住file和Position的两个值
现在到server2上,并进入mysql

mysql -uroot -ploshub123258

配置同步,如主有改端口,需要在

stop slave;
change master to master_host='192.168.0.6',
master_port=3306,
master_user='loshub7',
master_password='loshub123258',
master_log_file='mysql-bin.000002',
master_log_pos=154;
start slave;

查看是否同步show slave status\G;

            Slave_IO_Running: Yes
            Slave_SQL_Running: Yes

证明同步

在server3上进入mysql

mysql -uroot -ploshub123258

配置同步

stop slave;
change master to master_host='192.168.0.6',
master_port=3306,
master_user='loshub10',
master_password='loshub123258',
master_log_file='mysql-bin.000002',
master_log_pos=154;
start slave;

查看有无同步

show slave status\G;

显示

            Slave_IO_Running: Yes
            Slave_SQL_Running: Yes

现在回到server1上查看同步的主机

 show slave hosts;

显示

+-----------+------+------+-----------+--------------------------------------+
| Server_id | Host | Port | Master_id | Slave_UUID                           |
+-----------+------+------+-----------+--------------------------------------+
|         7 |      | 3306 |         6 | 3d65d773-02cb-11ea-a1e4-000c29f3c76c |
|        10 |      | 3306 |         6 | 2d65d772-02cb-11ea-a1e4-000c29f3c76c |
+-----------+------+------+-----------+--------------------------------------+
2 rows in set (0.00 sec)

完成

分类: mysql 标签: 暂无标签

评论

暂无评论数据

暂无评论数据

目录