CentOS7.5 MySQL 8.0 集群 (主从搭建)

MySQL 主从原理分析
  • Master服务器数据提交后,会将数据写入到Binary log中
  • Slave服务器通过IO线程监听Binary log日志,如果该日志发生变化,会将内容读取到并写入relay log(中继日志)中
  • Relay线程监听relay log,如果该日志发生变化会将该日志增量的写操作执行一遍,写入数据文件

在这里插入图片描述

主机配置及IP
主机名系统IP角色
107centos7.5192.168.0.107Master/写入
108centos7.5192.168.0.108Slave/读取
109centos7.5192.168.0.109Slave/读取
实现读写分离
  1. Master 配置
  • 修改配置文件 my.cnf
    vim /etc/my.cnf
    
    添加如下
    #启用二进制文件
    log-bin=mysql-bin
    #设置服务器唯一ID,用于区分主从服务器。
    server-id=107
    
    在这里插入图片描述
  • 重启Mysql
systemctl restart mysqld
  • 登录Mysql 进行授权
mysql -uroot -p
  • 进入Mysql界面 在Master库创建一个账号,具备Replication Slave权限,提供给Slave库访问二进制日志使用
#创建用户
CREATE USER 'sluser'@'%' IDENTIFIED BY '123456';
#授权
GRANT REPLICATION SLAVE ON *.* TO 'sluser'@'%';
#刷新权限
flush privileges;
#查看状态
show master status;

在这里插入图片描述

  1. Slave 配置(俩个从数据库配置一样 除了id)
  • 修改配置文件 my.cnf
    vim /etc/my.cnf
    
    添加如下
    #启用二进制文件
    log-bin=mysql-bin
    #设置服务器唯一ID,用于区分主从服务器。
    server-id=108
    
  • 登录Mysql数据库
mysql -uroot -p

创建从数据库对主数据库监听

change master to master_host='192.168.0.107,master_port=3366,master_user = 'repl',master_password = '123456',master_log_file = 'mysql-bin.000001',master_log_pos = 2018;

master_host : master的ip或者域名
master_port : master的端口号 不写默认为3306
master_user: master 的登录名
master_password: master的密码
master_log_file: master 的 file 名
master_log_pos: master的position

  • 启动从服务器复制功能
start slave;
  • 查看服务状态
show slave status\G

在这里插入图片描述

测试主从复制

主库新建数据库 (test) 及数据表 (test)
添加数据

INSERT INTO `test`.`test`(`id`, `name`) VALUES (1, 'kang'),(2, 'yuan'),(3, 'zhao')

在这里插入图片描述

  • Slave中自动复制

在这里插入图片描述
由此可见主从已经配置成功

遇到的问题解决
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

ERROR 1193 (HY000): Unknown system variable 'validate_password_policy'
  • 问题原因
// 适用于sql的老版本如mysql5.0
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=4
// 新版本如mysql8.0就不支持了
// 为啥呢,进入mysql命令后,输入下面命令就清清楚楚了!
mysql> SHOW VARIABLES LIKE 'validate_password%';
// 结果如下
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password.check_user_name    | ON     |
| validate_password.dictionary_file    |        |
| validate_password.length             | 8      |
| validate_password.mixed_case_count   | 1      |
| validate_password.number_count       | 1      |
| validate_password.policy             | MEDIUM |
| validate_password.special_char_count | 1      |
+--------------------------------------+--------+
7 rows in set (0.01 sec)

  • 问题解决
// 调整设置密码策略
mysql> set global validate_password.policy=0;
Query OK, 0 rows affected (0.00 sec)

//调整设置密码长度
mysql> set global validate_password.length=1;
Query OK, 0 rows affected (0.00 sec)

再登录重新设置密码即可

ERROR 3021 (HY000): This operation cannot be performed with a running slave io thread; run STOP SLAVE IO_THREAD FOR CHANNEL '' first.
  • 问题原因
    io线程开启中无法对从服务器进行修改,因此我们需要关闭io线程
  • 问题解决
mysql> STOP SLAVE IO_THREAD;   //关闭线程
Query OK, 0 rows affected (0.00 sec)

mysql> change master to master_host='20.0.0.12',   //指定主服务器
    -> master_user='myslave',                 //管理用户名称
    -> master_password='123456',              //密码
    -> master_log_file='master-bin.000002',   //二进制文件
    -> master_log_pos=154;                    //文件位置参数

Query OK, 0 rows affected, 2 warnings (0.00 sec)    //提示成功

mysql> start SLAVE IO_THREAD;     //开启io线程
Query OK, 0 rows affected (0.01 sec)


Last_IO_Error: error connecting to master 'repl@127.0.0.1:3316' - retry-time: 60 retries: 2 message: Authentication plugin 'caching_sha2_password' reported error: Authentication requires secure connection.
  • 问题原因
    Master 中 repl 密码的plugin是caching_sha2_password 导致连接不上,修改为mysql_native_password即可解决。
  • 问题解决
ALTER USER 'repl'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值