当前位置:   article > 正文

MySQL8主从复制(一主一从)配置搭建详解_mysql8主从复制配置

mysql8主从复制配置

目录

前言

一、准备两台虚拟机服务器

二、分别安装mysql8

三、配置步骤

1. 先配置主服务器

2. 再配置从服务器

四、测试主从复制功能

前言

MySQL主从复制在实际Java应用开发中经常会遇到,记录一下如何快速搭建一主一从实时热备的配置。


一、准备两台虚拟机服务器

我这里是用VMware克隆的2台机器。

操作系统:ubuntu 20.04

数据库:mysql 8.0.32

名称

IP
Mysql服务器-master192.168.1.10
Mysql服务器-slave192.168.1.20

二、分别安装mysql8

mysql 8的安装步骤这里就忽略了,大家可以网上找找。我这里是先在一台虚拟机上装好mysql后,再克隆到出另一台虚拟机的,所以启动机器后,需要修改mysql的UUID,否则后面会报错。修改方法:

  • 使用find / -name auto.cnf命令,找到mysql的auto.cnf文件
  • 我这里在/var/lib/mysql目录下
  • vim /var/lib/mysql/auto.cnf
  • 将两台机器的UUID改成不一样就行

然后在两台机器上,分别创建数据库test和表user,两个表的数据字段要一样,最好是在一台机器上创建好后,再sql导出并导入到另一台机器。

三、配置步骤

1. 先配置主服务器

1)在 /etc/mysql/mysql.conf.d/mysqld.cnf的核心配置文件的[mysqld]节点内,移动光标到文件最底端,修改并新增配置:

  1. server-id = 1 #服务器 id,随意,但要唯一
  2. log_bin = /var/log/mysql/mysql-bin.log #二进制文件存放路径
  3. read-only = 0 #[可选] 0(默认)表示读写(主机),1表示只读(从机)
  4. binlog_expire_logs_seconds = 2592000 #设置日志文件保留的时长,单位是秒
  5. max_binlog_size = 100M #控制单个二进制日志大小。此参数的最大和默认值是1GB
  6. binlog_do_db = test #待同步的数据库日志
  7. binlog_ignore_db = mysql,sys #不同步的数据库日志

2)创建专门用于主从复制用户账号。因此使用root账户登录mysql,并执行如下指令

  1. #登录
  2. mysql -u root -p
  3. #创建用户 我这里用户名为copyuser,注意这里的ip是从库服务器的ip
  4. CREATE USER 'copyuser'@'192.168.1.20' IDENTIFIED WITH mysql_native_password BY '123456';
  5. #给主从复制账号授权
  6. grant replication slave on *.* to 'copyuser'@'192.168.1.20';

3)重启主库的mysql

service mysqld restart

4)再次登录mysql,使用如下指令查看master的状态

show master status;

结果类似如下:我们需要关注File和Position的信息,后面要用到。

2. 再配置从服务器

1)在 /etc/mysql/mysql.conf.d/mysqld.cnf的核心配置文件的[mysqld]节点内,移动光标到文件最底端,修改并新增配置:

  1. server-id = 2 #服务器 id,随意,但要唯一
  2. log_bin = /var/log/mysql/mysql-bin.log #二进制文件存放路径
  3. read-only = 1 #[可选] 0(默认)表示读写(主机),1表示只读(从机)
  4. binlog_expire_logs_seconds = 2592000 #设置日志文件保留的时长,单位是秒
  5. max_binlog_size = 100M #控制单个二进制日志大小。此参数的最大和默认值是1GB
  6. replicate_do_db = test #待同步的数据库日志
  7. replicate_ignore_db = mysql,sys #不同步的数据库日志

2)然后我们重启从库的mysql

service mysqld restart

3)实现主从同步,在从库具体配置如下:

  1. #1,先登录mysql,然后执行后续代码
  2. mysql -u root -p密码
  3. #2,关闭从库
  4. stop slave;
  5. #3,设置同步,注意这里是主库ip,日志名称和位置是我们之前上图中看到的名称和位置
  6. change master to master_host='192.168.1.10',master_user='copyuser',master_password='123456',master_log_file='mysql-bin.000004',master_log_pos=157;
  7. #4,开启从库
  8. start slave;
  9. # 5,检查服务器状态
  10. show slave status \G;

检测服务器状态正常情况下如下图:

看到Replica has read all relay log; waiting for more updates基本说明配置成功了,已经开始了主从复制。

四、测试主从复制功能

测试就非常简单了,在主服务器的表中新增一条数据,然后打开从服务器的对应表,发现也有了一样的记录数据,说明就复制成功了。


声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号