mysql主从复制(positions)的简单实现

实验环境

master节点:server1,ip为172.25.21.1
slave节点:server2,ip为172.25.21.2
测试:真机,ip为172.25.21.250

配置master节点

安装mysql主从复制需要的包

在官网上下载mysql的包mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar

tar xf mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar #解压,这里不使用z参数
安装所需要的rpm包

在这里插入图片描述
在这里插入图片描述

yum install -y mysql-community-client-5.7.28-1.el7.x86_64.rpm mysql-community-common-5.7.28-1.el7.x86_64.rpm mysql-community-libs-5.7.28-1.el7.x86_64.rpm mysql-community-libs-compat-5.7.28-1.el7.x86_64.rpm mysql-community-server-5.7.28-1.el7.x86_64.rpm

注意:一定要按顺序安装,否则安装会出现依赖性问题 企业

修改mysq主配置文件,实现主从复制

vim /etc/my.cnf 

编辑内容为:(在文件最后写入)

log-bin=mysql-bin   #开启二进制日志
server-id=1   #主库server-id需要比从库小,用来区分主机与从机

开启mysql服务

systemctl start mysqld #开启服务

查看初始密码

重启mysql会在/var/log/mysqld.log文件中生成一个密码

cat /var/log/mysqld.log | grep password #查看原始密码

在这里插入图片描述

KMeu/y=4,v95 #为原始密码
我们使用原始密码登陆(没有做安全初始化,对数据库进行读操作时会报错)

注意:这里的密码如果使用 -p密码,出错的话,我们可以使用单引号将密码引起来

在这里插入图片描述

开启服务之后生成了一个临时密码,使用临时密码进行数据库安全初始化
mysql_secure_installation #安全初始化
设定新密码时:密码大于8位,数字+大小写英文+特殊字符
因为该数据库版本开启了密码检测系统,简单密码会报错
Westos.123 #我新设的密码
第一处直接回车,其他输入y

使用临时密码进行数据库安全初始化

在这里插入图片描述
在这里插入图片描述

登陆数据库对用户进行授权

mysql -uroot -pWestos.123   #登录数据库
show databases;  测试数据库是否可以使用
grant replication slave on *.* to huige@'172.25.21.%' identified by 'Westos.456';

#我们开启一个slave线程,让这个slave来复制主mysql 同时创建从库连接的用户,可以使用此用户远程登录数据库,且授权为可以复制master节点数据的slave节点,
让172.25.21网段的从服务器来使用mysql主服务器的huige这个用户来访问,给他一个授权(使用的密码是Westos.456)

    flush privileges; #刷新
    show master status; #查看master节点的状态

REPLICATION:表示复制的权限
. :表示对所有库的所有表都授权
huige:用户名
‘172.25.21.%’ : 授权172.25.21网段的所有数据库节点都可以同步(复制)

在主机上测试主节点是否设置好:

mysql -h 172.25.21.1 -uhuige -pWestos.456 #登录数据库

配置slave节点

[root@server2 Mysql]# tar xf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar #解压安装所需要的rpm包
[root@server2 Mysql]# yum install -y mysql-community-client-5.7.28-1.el7.x86_64.rpm mysql-community-common-5.7.28-1.el7.x86_64.rpm mysql-community-libs-5.7.28-1.el7.x86_64.rpm mysql-community-libs-compat-5.7.28-1.el7.x86_64.rpm mysql-community-server-5.7.28-1.el7.x86_64.rpm
[root@server2 Mysql]# vim /etc/my.cnf # 编辑文件

编辑内容为(在最后写):
server-id=2    #从库只需要开启一个跟主库区分的id就可以了
systemctl start mysqld #开启服务
cat /var/log/mysqld.log | grep password #查看原始密码
原始密码为:RxXRJ21hBQ:o
mysql_secure_installation #安全初始化

操作跟主服务器一样,输入原始密码
设置新密码(为了不出错我们将从服务器密码也改为Westos.123)
第一个回车,其他的输入y后回车
在这里插入图片描述
在这里插入图片描述

在从库指定主库信息

配置主库信息:
指定二进制主库
在mysql主服务器server1上查看
日志文件和状态码可以在主库中查看
在这里插入图片描述
然后回到server2的从数据库中

mysql> change master to master_host='172.25.21.1',    #主库的ip地址
-> master_user='huige',master_password='Westos.456', 
#主库的用户主库的密码
    -> master_log_file='mysql-bin.000002',   #主库的日志文件
    -> master_log_pos=1592;    #主库的状态码

在这里插入图片描述

开启从库

mysql> start slave;  #开启从库

在这里插入图片描述
在这里插入图片描述

show slave status\G; #查看从库状态

可以看到的当前两个进程都是yes,表示主库和从库的数据一致
开启成功,IQ SQL线程都开启才能正常复制
在这里插入图片描述

测试mysql主从复制

在主库上创建新的数据库
在从库上查看是否复制
在这里插入图片描述
在这里插入图片描述

use westos;

在这里插入图片描述在这里插入图片描述

在这里插入图片描述
主从复制成功

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值