MySQL8主从复制

环境介绍

主服务器配置

修改my.cnf配置文件

在/etc/my.cnf 添加如下信息

登录主服务器给从服务器授权

登陆mysql

创建user授权

备注:rootslave就是为从库进行复制配置的账号,1qaz#WSX为密码,从服务器ip即就是192.168.247.101

CREATE USER 'rootslave'@'从服务器ip地址' IDENTIFIED WITH mysql_native_password BY '1qaz#WSX';

grant replication slave on *.* to 'rootslave'@'从服务器IP地址';

grant replication slave on *.* to 'rootslave'@'192.168.247.101';

博主这里@后面写错了,不过不影响,你们写对就行,能运行就跳过下面的解决方法,报错就接着看

报错,不要慌

查看root用户是否有grant_priv 权限

select user ,grant_priv from user ;

发现有该权限,这说明不是权限的问题;继续排查下一个

如果root用户仅在 localhost主机下去授权用户在别的主机上的权限也是不可以的,比如 ‘root'@'localhost’ 去授权别的主机用户  ‘username’@‘otherhost’ 也会报错,所以修改root用户的 host 为可以访问所有主机(打造一个真正的超级管理员),然后更新权限为拥有所有的权限,这里是必须要更新的,要不然还会报错
update user set host='%' where user='root' ;
 grant all privileges on *.* to 'root'@'%' ;
搞定,再次授权

grant replication slave on *.* to 'rootslave'@'从服务器IP地址';

grant replication slave on *.* to 'rootslave'@'192.168.247.101';

刷新数据使其生效

FLUSH PRIVILEGES;

退出mysql

重启mysql
service mysqld restart

登陆mysql

查看主服务器的bin-log日志文件和position点

show master status;

划重点!!!!!!!!!!!!!!!!!!!!

记号,后面要用,划重点!!!!!!!!!!!!!!!!!!!!

从服务器配置

修改my.cnf配置文件

在/etc/my.cnf 添加如下信息

vim /etc/my.cnf

重启mysql

登录从服务器

连接主服务器

连接 :

ip地址是主服务器的ip(自己修改),rootslave是上面配置的账号,master_password是密码,master_log_file是划重点里面的,忘记的回头看  主服务器查看的文件名字(自己修改),master_log_pos也是划重点里面的(自己修改)

change master to master_host='192.168.247.100',master_user='rootslave',
master_password='123456',master_log_file='java38-bin.000006',master_log_pos=155;

 

刷新数据使其生效

FLUSH PRIVILEGES;

开启从服务器sql线程

start slave;

查看从服务器状态

show slave status\G;

测试

Navicat ,连接主服务器,创建一张表

打开从服务器就能看到在主服务器创建的表

在主服务器的表中插入数据,就会看到在从服务器中有数据

 

BUG

在从服务器进行写操作 (插入),主从复制就会停止!

从服务器操作

首先停掉Slave服务: stop slave

主服务器操作

重新查看状态,记住关键字

从服务器操作,一样的部署

完成

posted on 2022-01-11 18:40  Sky丨Star  阅读(565)  评论(0编辑  收藏  举报

导航