搜索

docker 下 mysql主从配置进行读写分离


发布时间: 2022-11-24 21:45:00    浏览次数:34 次

分享时间:2022-11-24 21:45:00
数据来源:网络
提取密码:在线浏览
文件类型:文章

写在前面

在上篇 docker环境下搭建PHP网站,实现nginx负载均衡和mysql主从配置中我们使用docker搭建了1台负载均衡器,2个web服务器和两个主、从数据库服务器 实现了nginx负载均衡访问网站web服务器

接下来我们看一下如何进行mysql数据库主从配置和读写分离,数据库服务器的搭建部分请看上篇

mysql主从配置

修改主数据库服务器配置文件

sudo vim /data/mysql/mysql_master/conf.d/docker.cnf

写入内容

[mysqld]

server-id = 1
log-bin=master-bin
log-bin-index=master-bin.index

修改从数据库服务器配置文件

sudo vim /data/mysql/mysql_salve/conf.d/docker.cnf

写入内容

[mysqld]

server-id = 2
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin

修改完成之后,进行容器重启
docker restart mysql_master mysql_salve

在master数据库(主库)中创建同步用户授予用户slave REPLICATION SLAVE权限和REPLICATION CLIENT权限,用于在主从库之间同步数据。

create user 'myslave'@'%' identified by '123456';
grant all privileges on *.* to 'myslave'@'%' with grant option;
mysql -u myslave -p123456 -h 192.168.0.111 -P8114 --get-server-public-key

mysql登陆之后输入命令show master status;获取如下两个参数
image.png

获取到之后来到从数据库服务器操作

change master to master_host='192.168.0.111',master_port=8114, master_user='myslave',master_password='123456',master_log_file='master-bin.000001',master_log_pos=157;
start slave;

此处的参数来自主数据库服务器指出来的参数

image.png

完成之后输入show slave status\G 注意没有; 进行查看是否成功
image.png

此处为yes即代表成功配置

接下来我们进行测试,首先在主数据库服务器创建一个数据库
create database test_1;
image.png
创建成功后来到从数据库服务器,查看是否进行了数据复制
image.png

可以看到,实现了从主库到从库的数据同步

读写分离

实现了主从配置后就可以进行读写分离操作了
以thinkphp5为例

修改.env文件
image.png
database.php 配置文件
image.png

免责声明 docker 下 mysql主从配置进行读写分离,资源类别:文本, 浏览次数:34 次, 文件大小:-- , 由本站蜘蛛搜索收录2022-11-24 09:45:00。此页面由程序自动采集,只作交流和学习使用,本站不储存任何资源文件,如有侵权内容请联系我们举报删除, 感谢您对本站的支持。 原文链接:https://segmentfault.com/a/1190000042896236