Mysql 主从复制实现


实现原理

在这里插入图片描述

主库配置

需要关闭防火墙或开启3306端口!

1、开启二进制日志

默认关闭

在这里插入图片描述
开启二进制日志

vim /etc/my.cnf

添加如下:
server_id=1
log_bin=binlog
read_only=0 #1:只读,0:读写

重启mysql:
systemctl restart mysqld

进入数据库,查询是否开启成功

show variables like '%log_bin%';

在这里插入图片描述

2、创建远程连接账号,并赋予主从复制权限

//创建用户
create user 'tyron'@'%' identified with mysql_native_password by 'root@root';

//分配权限
grant replication slave on *.* to 'tyron'@'%';

相关报错:

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
密码验证强度问题,可分为LOW -> MEDIUM -> STRONG,默认为MEDIUM

在这里插入图片描述

//修改密码验证强度
set global validate_password_policy=LOW;

在这里插入图片描述
File: 二进制写入文件名
Position: 当前位置

从库配置

1、修改配置文件

vim /etc/my.cnf

添加如下:
server_id=2
read_only=1 #1:只读,0:读写

重启mysql:
systemctl restart mysqld

2、配置同步

8.0.23版本及以上:
change replication source to source_host='xxx',source_user='xxx',source_password='xxx',source_log_file='xxx',source_log_pos='xxx';
例:change replication source to source_host='192.168.118.133',source_user='tyron',source_password='root@root',source_log_file='binlog.000001',source_log_pos='154'; 

8.0.23版本一下:
change master to master_host='xxx',master_user='xxx',master_password='xxx',master_log_file='xxx',master_log_pos='xxx';
例:change master to master_host='192.168.118.133',master_user='tyron',master_password='root@root',master_log_file='binlog.000001',master_log_pos='154'; 

3、开启同步操作

start replica; //8.0.22之后
start slave; //8.0.22之前

3、查看同步状态

show replica status\G; //8.0.22之后
show slave status\G; //8.0.22之前

在这里插入图片描述
相关错误:

Slave_IO_Running:NO

可能因为uuid相同,修改当前数据库uuid即可

在这里插入图片描述
vim auto.cnf

在这里插入图片描述
重启MySQL即可

thinkphp 配置读写分离

编辑 database.php


    // 服务器地址
    'hostname'        => '192.168.118.133,192.168.118.134',
    // 数据库名
    'database'        => 'test',
    // 用户名
    'username'        => 'root',
    // 密码
    'password'        => 'root',
    // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
    'deploy'          => 1,
    // 数据库读写是否分离 主从式有效
    'rw_separate'     => true,
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值