Centos7配置Mysql8主从复制同步数据

1.首先需要在三台不同主机安装好mysql8

参考:https://www.cnblogs.com/haoxuanchen2014/p/17351034.html

主库ip: 192.168.2.66

从库1ip: 192.168.2.67

从库2ip: 192.168.2.68

主库的数据表结构应该与从库的数据表结构字段完全一直;

2. 配置主库

第一步:添加配置文件 /etc/my.cnf
加多下面两句代码如下(示例):

[mysqld]
server-id=101  #[必须]服务器唯一ID

创建一个用户slave,密码为123456,并且给slave用户授予REPLICATION SLAVE权限。常用于建立复制时所需要用到的用户权限,也就是slave必须被master授权具有该权限的用户,才能通过该用户复制;

// mysql8授权用户需要先创建,创建和授权同一条语句的话会报错
> create user slave@'%' identified by '123456';
//再授权
> GRANT ALL PRIVILEGES ON *.* TO 'slave'@'%'WITH GRANT OPTION;
//刷新
> flush privileges;

第四步:登录Mysql数据库,执行下面SQL,记录下结果中File和Position的值

> show master status;

 

3. 配置从库

//这是从库和主库连接的关键一步,host是主库的ip,user是前面创建的slave用户,file和pos是主库show master status的信息
change master to
master_host='192.168.2.66',master_user='slave',master_password='123456',
master_log_file='mysql-bin.000004',master_log_pos=1145;

//执行后启动slave
start slave;

登录Mysql数据库,执行下面SQL,查看从数据库的状态;

> show slave status\G; 这样就竖着输出

两个yes则表示成功配置主从复制,Connection和No都是配置有问题;

 

// 查看配置不同从库的server_id; 

> show variables like 'server_id';

> set global server_id=102;

// 开启防火墙

# 配置防火墙

systemctl start firewalld;   #启动
systemctl stop firewalld;    #停止
systemctl status firewalld;    #查看状态
systemctl disable firewalld;    #开机禁用
systemctl enable firewalld;   #开启启动

 

#开放80/tcp端口 (--permanent永久生效,没有此参数重启后失效)
firewall-cmd --zone=public --add-port=80/tcp --permanent      
firewall-cmd --reload; #
firewall-cmd --zone=public --query-port=80/tcp;         #查看80/tcp端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent;    #删除该端口开放
firewall-cmd --zone=public --query-port=3306/tcp;

 

posted on 2023-04-24 22:41  春分夏至  阅读(174)  评论(0编辑  收藏  举报

导航