mysql 的主从复制与读写分离

基于 Centos7 + Mariadb 的主从复制与读写分离

搭建环境:

操作系统mysql版本身份ip地址
Centos7Ver 15.1 Distrib 5.5.68-MariaDBMaster192.168.177.130
Centos7Ver 15.1 Distrib 5.5.68-MariaDBSlave1192.168.177.129
Centos7Ver 15.1 Distrib 5.5.68-MariaDBSlave2192.168.177.128

这个文章只是起个学习作用,所以我们只是用Master + Slave1 环境做搭建。

注:服务器的时区必须同步。

搭建

  • 安装Mariadb并启用

我们在这里使用Yum进行快速安装。

# 安装mariadb
yum -y install mariadb mariadb-server

# 启动mariadb
systemctl start mariadb

# 查看mariadb启动状态
systemctl status mariadb

在这里插入图片描述mariadb启动成功后,默认占用端口号是3306,我们确认下:
在这里插入图片描述
如图所示,mariadb就已经成功启动了。

  • 配置mysql用户 (Master/Slave1)
# 使用 mysqladmin 命令来更改 MySQL root 用户的密码
mysqladmin -uroot -p password 'your_password';
# 进入数据库
mysql -uroot -p
Enter password: 'your_password'    # 回车即可
# 想要配置一主多从,那么需要对my.cnf进行配置,但是Master和Slave的配置是不同的
vim /etc/my.cnf

主要是加上 server-id、log-bin、relay-log 三项。
server-id: server-id 就是标识一个 MySQL 实例的唯一标识符 当你需要将一个 MySQL 数据库设置为主库(Master)并将数据同步到另一个 MySQL 数据库作为从库(Slave)时,需要在主库和从库中分别配置 server-id 参数,并在主库上启用二进制日志(binary logging)。这样就可以确保在主库执行的所有更改都被记录到二进制日志中,并且从库可以通过读取主库的二进制日志来获取并应用这些更改。
log-bin:它用于启用二进制日志(binary logging)二进制日志是一种记录数据库所有更改操作的方式,包括更新、插入和删除等操作。通过启用二进制日志,可以实现MySQL主从复制、数据恢复和安全审计等功能。
relay-log:用于配置中继日志,在 MySQL 主从复制中,中继日志是指从库上用于存储从主库同步过来的二进制日志事件的文件。

my.cnf (Master)配置如图所示:
在这里插入图片描述
my.cnf (Slave1)配置如图所示:
在这里插入图片描述
修改完 my.cnf之后需要重新启动mariadb。

systemctl restart mariadb
  • 配置主从

    • Master
       # 进入数据库
       mysql -uroot -p123123
       # 在 MySQL 数据库中为复制从库(Replication Slave)和复制客户端(Replication Client)添加权限
       grant replication slave,replication client on *.* to 'slave'@'192.168.177.129%' identified by "your_slave_password";
       # 刷新权限
       flush privileges;
       # 查看主库当前的二进制日志状态
       show master status\G;
      
      在这里插入图片描述
      记住 File Position两个值, 在后续配置Slave1需要使用。 自此,Master就已经配置完成了。
    • Slave1
      # 进入数据库
      mysql -uroot -p
      Enter password: your_password   # 回车即可
      # 配置 MySQL 主从复制的命令,将当前服务器作为从服务器。
      change master to master_host="192.168.177.130", master_user="slave1", master_password="your_master_password", master_log_file="log_file", master_log_pos=pos;
      # 上方配置的log_file 和 pos 就是上面配置Master完成后让你记住的两个值 `File` 和  `Position`,如果忘记的话,可以在Master服务器中进入数据库输入一下命令查看。
      show master status
      
      在这里插入图片描述
      # 启动从服务器复制进程
      start slave
      # 查看从服务器复制状态
      show slave status\G;
      
      在这里插入图片描述
      最主要就是看这两个(Slave_IO_Running / Slave_SQL_Running) 是否开启(YES)
      如果IO线程没有开启,那么下方Last_Error会显示错误信息,一般来说第一次会出现链接超时,那是因为链接不上主数据源,Master可以直接关闭防火墙再试。如果显示的都是YES那么就是主从复制配置成功,接下来我们就可以进行测试了。
  • 测试
    进入Master中进入数据库中创建一个库,然后切换到Slave1中查看从数据源中是否也会自动创建这个库。如果创建成功了,那么则主从复制配置成功了。

读写分离 (SpringBoot + MybatisPlus + Druid + Mysql5)

文章太长,单独写了一篇读写分离(多数据源)的文章:添加链接描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值