关于docker:docker下进行mysql主从配置实现thinkphp读写分离

1次阅读

共计 1185 个字符,预计需要花费 3 分钟才能阅读完成。

写在后面

在上篇 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; 获取如下两个参数

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

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;

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

实现之后输出 show slave status\G 留神没有; 进行查看是否胜利

此处为 yes 即代表胜利配置

接下来咱们进行测试,首先在主数据库服务器创立一个数据库
create database test_1;

创立胜利起初到从数据库服务器,查看是否进行了数据复制

能够看到,实现了从主库到从库的数据同步

读写拆散

实现了主从配置后就能够进行读写拆散操作了
以 thinkphp5 为例

批改 .env 文件

database.php 配置文件

正文完
 0