MysqL 主从复制

 环境说明

两个 CentOS7.x 的虚拟机
MySQL 8.0.16
Master_IP: 192.168.42.28
Slave_IP: 192.168.42.29

 注意:MysqL的版本最好一致

mysql 5.6以后的复制引入了uuid的概念,各个复制结构中的server_uuid得保证不一样,但是查看到直接copy data文件夹后server_uuid是相同的,命令如下:

 show variables like ‘%server_uuid%’;

- - 若是两台虚拟机的uuid是相同的

   解决办法:找到/var/lib/mysql文件夹下的auto.cnf文件,修改里面的uuid值,保证各个db的uuid       不一样,然后重启db即可

  systemctl restart mysqld.service

复制的基本原则:

每个 Slave 只有一个 Master
每个 Slave 只能有一个唯一的服务 ID
每个 Master 可以有多个 Slave
(这里Slave代指从服务器,Master代指主服务器)
一 、实现 MySQL 主从复制需要进行的配置
1、主服务器 Master
开启二进制日志 binlog                                                       
配置唯一的 server-id
获得 master 二进制文件名及位置
创建一个用于 slave master 通信的用户账号

        修改master配置 vim /etc/my.conf

        [mysqld]

        #开启二进制日志

        log-bin=mysql-bin

        #设置server-id,建议使用ip最后3

        server-id=28

2、 从服务器 Slave
配置唯一的 server-id
使用 master 分配的用户账号读取 master 二进制日志
启动 slave 服务
               修改 slave 配置 vim /etc/my.conf
               

              [mysqld]

              #开启中继日志

              relay-log=mysql-relay

              #设置server-id,建议使用ip最后3

              server-id=29

  3、配置完成后 重启 mysql 服务
       systemctl restart mysqld.service
二 、在主机上建立账户copy用于让从数据库连接,并授权

create user 'copy'@'%' identified with mysql_native_password by ' your password ';

GRANT REPLICATION SLAVE ON *.* TO ‘copy'@‘%‘;

flush privileges;   刷新授权表信息

--查询master的状态

 show master status\G;

 记录上图结果中FilePosition的值

三 、告知从服务器二进制文件名与位置(从服务器操作)

 这里要根据上面主服务器的状态来填写,不要直接用下面的SQL,需要根据实际值修改

CHANGE MASTER TO

master_host = ‘192.168.42.28,   #主库的IP地址

master_user = ‘copy’,     #在主库上创建的复制账号

master_password = ‘Nebula@123’, #在主库上创建的复制账号密码

master_log_file = ‘mysql-bin.000001’, #开始复制的二进制文件名(从主库查询结果中获取)

master_log_pos = 817; #开始复制的二进制文件位置(从主库查询结果中获取)

四 、查看从服务器状态

//开启复制

start slave;

//查看主从复制是否配置成功

SHOW SLAVE STATUS\G当看到上图红色三个才表明状态正常。

五 、主从复制服务搭建完成,即在主服务器上做SQL操作,会同步到从服务器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值