写点什么

MySQL 主从配置 +ThinkPHP5 分布式数据库

作者:北桥苏
  • 2023-05-12
    广东
  • 本文字数:1167 字

    阅读完需:约 4 分钟

前言

本文章是在同处局域网内的两台 windows 电脑,且 MySQL 是 5.5 以上版本下进行的一主多从同步配置,并且使用的是集成环境工具 PHPStudy 为例。最后就是 ThinkPHP5 的分布式的连接,读写分离配置,以后会用代码简单测试读写分离的效果。

 

数据库部分

一. 主库(master)设置。

方法/步骤 1:phpstudy 至少开启 MySQL 服务,并找到配置文件 mysql.ini 并进入。



方法/步骤 2:进入 mysql-ini 文件找到“[mysqld]”节点,添加以下配置,完成后重启服务。

server-id=1log-bin=mysql-binbinlog-do-db=repair_computerbinlog-do-db=jindebinlog-do-db=testbinlog-ignore-db=weiqing
复制代码



方法/步骤 3:验证配置是否成功,可以使用 navicat for mysql 工具新建查询或者直接使用命令。

(1). 查看 server-id,命令“ SHOW VARIABLES LIKE 'server_id'; ”




(2). 查看主库的状态( 需要同步的数据库及不用同步的数库 下图中 file 和 position 在从库配置中会用到 (每次修改主服 my.ini 文件 file 和 position 参数都会变 )




方法/步骤 4:查看主库电脑的局域网 IP 地址并且也添加一个给从库连接的用户账号并分配权限(本地是测试的可以直接将 root 账户主机开放)



方法/步骤 5:到这里主库 master 的配置就没有了。

 

二. 从库(slave)设置。

方法/步骤 1:开启 MySQL 服务并找到 mysql.ini 文件的[mysqld]节点下,添加以下配置

server-id=2log-bin=mysql-binslave-net-timeout=60replicate-do-db=repair_computerreplicate-do-db=jindereplicate-do-db=testreplicate-ignore-db=weiqing
复制代码



方法/步骤 2:重启服务,然后将主库的几个需要同步的数据导入到从库(表名需一致).

 

方法/步骤 3:打开 mysql 命令面板,输入以下命令。

(1).  stop slave;    停止从库

(2). change master to master_host=’2192.168.1.112’, master_user=’repl’, master_password=’repl’, master_log_file=’mysql-bin.000003’, master_log_pos=1937;

关于 File 和 Position('mysql-bin.000003' 1937) 是主库配置中的第 3 步得到的 主库中输入命令 show master status,前面几个就是主库的 IP 地址和用户账号密码了。

(3). start slave;    开启从库



方法/步骤 4:检测主从是否打通,输入命令“ show slave status \G; ”,查看“ Slave_IO_Running ”和“ Slave_SQL_Running ”是否都为 yes。



方法/步骤 5: 可以去主库的同步的表中随便添加数据,然后再查看从表是否同步即可

 

TP5 部分

主库(master)IP:192.168.1.112从库(slave) IP: 192.168.1.102
复制代码

1. 找到 ThinkPHP5 的 databases.php 文件,deploy 设置为 1(分布式),具体可以参考 TP5 的在线文档。



2. 读写分离只需将 rw_separate 设置为 true,并且前面的 IP 地址默认是主库。测试读操作是否会落到从表只需将从表的某个数据进行修改然后在代码中使用查询。

 





3. 写操作可以在代码中执行插入数据,然后分别查看主库和从库是否同步就可以了。



用户头像

北桥苏

关注

公众号:ZERO开发 2023-05-08 加入

专注后端实战技术分享,不限于PHP,Python,JavaScript, Java等语言,致力于给猿友们提供有价值,有干货的内容。

评论

发布
暂无评论
MySQL主从配置+ThinkPHP5分布式数据库_MySQL_北桥苏_InfoQ写作社区