【Linux】CentOS 搭建 MySQL 主从服务器

起序:虚拟机安装,服务器是 克隆 来的。

一、环境

  • 虚拟机:VMware Workstation 15.5 Pro
  • Linux:CentOS-7-x86_64-DVD-2003.iso
  • MySQL:mysql-8.0.20-1.el7.x86_64.rpm-bundle.tar

二、安装

1、CentOS 安装

  • 害,我没有写

2、MySQL 安装

三、服务器分配

服务器名称IP 地址
Master10.1.0.97
Slave110.1.0.82
Slave210.1.0.83

注:从服务器的搭建基本相同,所以下面教程就没有重复写 第三台从数据库服务器 的搭建步骤了,只是在每个 /etc/my.cnf[mysqld]下的 server-id=#{num} 不同而已。

1、Master

登陆数据库后,创建数据库 test,创建一张表 test,字段少许 id、name

-- 创建数据库 test
create database test;
-- 选中数据库 test
use test;
-- 创建字段 id, name
create table test(id int, name varchar(20));

在这里插入图片描述

创建新用户 slave,密码为 1234,(注:我这是为了做教程,密码设置的简单好记)。

-- 'slave'@'%': % 的意思是任意主机都可以通过这个账号密码访问(本教程使用的是这个)
create user 'slave'@'%' identified by '1234';
-- 也可以设置 '192.168.3.%' 表示只有 '192.168.3' 这个网段内才能访问这个数据库
create user 'slave'@'192.168.3.%' identified by '1234';

创建新用户时,可能会遇到 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 这个问题,这是因为设置密码的策略问题,看下面这篇文章可解决问题:

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

授权,MySQL 的授权方式和版本有关系,下方列出了 MySQL-5MySQL-8 的方式。

-- MySQL-5
grant replication slave on *.* to 'slave'@'%' identified by "1234";
-- MySQL-8
grant replication slave on *.* to 'slave'@'%';
-- 刷新权限列表
flush privileges;

在这里插入图片描述

配置 Master/etc/my.cnf 文件

# 修改主从配置的文件
vim /etc/my.cnf

############################
# 		 加入下面内容 	   #
############################

# 启用二进制日志
log-bin=mysql-bin-master
# 服务编号 ID,必须是唯一的
server-id=1
# 需要同步的库
binlog-do-db=test
# 不同步 mysql 这个库,因为每个服务器的 mysql 库的权限信息都不一样,同步之后就会乱套
binlog-ignore-db=mysql

在这里插入图片描述

重启数据库服务器,查看主服务的状态。

# 重启 MySQL 服务器
systemctl restart mysqld
# 登陆 MySQL
mysql -uroot -p
# 查看主服务的状态
show master status;

在这里插入图片描述

导出新建的 testsql

mysqldump -uroot -p -B test > test.sql

在这里插入图片描述

拷贝到 从数据库服务器/root 目录下

scp ./test.sql root@10.1.0.82:/root

在这里插入图片描述


2、Slave

  • 从服务器的配置基本一样,这儿就写了一遍。

test.sql 导入到 MySQL

mysql -uroot -p < test.sql
# 查看 test.sql 是否导入成功
mysql -uroot -p -e "show databases"

在这里插入图片描述

配置 Slave/etc/my.cnf 文件

# 配置从服务器
vim /etc/my.cnf

############################
# 		 加入下面内容 	   #
############################

# 服务编号 ID,必须是唯一的
server-id=2

在这里插入图片描述

数据库中的配置
必须先停止 从服务器的运行,才能配置,不然是会报错的。

-- 关掉同步
set sql_log_bin=off;
-- 停止从服务器
stop slave;
-- 告诉从服务器你的主服务器是 10.1.0.97,用来主从同步的账号是 slave,密码是 1234
change master to master_host='10.1.0.97', master_user='slave', master_password='1234';
-- 开启从服务器
start slave;
-- 开启同步
set sql_log_bin=on;

在这里插入图片描述

重启 从数据库服务器

systemctl restart mysqld

查看 从数据库服务器 的状态

show slave status\G

--------------------------------------------
-- 如果下面这两个的值不是 yes, 就是没有配置成功 --
--------------------------------------------
-- 负责 IO 通信的
Slave_IO_Running: Yes
-- 负责 SQL 同步的
Slave_SQL_Running: Yes

3、可能出现的问题

都在 从数据库上 的。

1、问题 1
show slave status\G;

在这里插入图片描述

解决方法

# 使用账号在从服务器上登录一次
mysql -uslave -p1234 -h 10.1.0.97

在这里插入图片描述

再查看一次 从数据库 的状态

show slave status\G;

注:下面 问题 2 是因为我在虚拟机配置的,服务器都是 克隆 而来的,MySQL 的唯一标识和主库一致。


2、问题 2

查看 从数据库 的状态

show slave status\G;

在这里插入图片描述

解决方法

# 删除 UUID,重启服务自动生成新 UUID
rm -f /var/lib/mysql/auto.cnf
# 重启数据库服务
systemctl restart mysqld

在这里插入图片描述

4、测试

插入一条数据做测试。

insert into test values(1, "ben");

数据库服务器

在这里插入图片描述

数据库服务器

在这里插入图片描述
如果对您有帮助,点个赞再走吧。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

边扯边淡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值