mysql 主从复制 + thinkphp 读写分离
好处:加快查询速度、数据库热备份等
注意:要跨服务器,先准备一个虚拟机或者docker,同一个服务器意义不大,而且风险大。
注意:本文档学习原理使用,线上可使用阿里云rds自带的读写分离
主从复制:
1、主数据库,开启bin log日志
2、主数据库创建1个,只有复制权限的用户
3、在从数据库上,配置主数据库这个用户
4、在从数据库上新增一个只有读权限的用户
5、将从库和读权限用户配置到thinkphp中
第一步
先查询是否开启了binlog日志
查询不到就需要开启
server-id=1
log-bin=master-bin
log-bin-index=master-bin.index
添加后,重启 systemctl restart mysqld
再次查询
master-bin.000001 154
记录下来,后面从库要配置
在虚拟机或者docker中,新建1个从库
从库:192.168.22.135 账号root密码123456
在主库和从库建一个一样的数据库:slave_mydb1
在主服务器执行
创建复制权限用户:
CREATE USER 'REPL'@'%' IDENTIFIED BY 'Xg7!2rHVp9Ys&T4a';
刷新配置
flush privileges;
我的环境:
(lnmp)主库root用户:root 密码 Xg7!2rHVp9Ys&T4z
(lnmp)主库复制用户:REPL 密码 Xg7!2rHVp9Ys&T4a
(docker-db2)从库root用户:root 123456
下一步:在从库上面配置用户信息
教程:
https://blog.csdn.net/qq_32748609/article/details/96988747?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-4-96988747-blog-96871574.235^v43^pc_blog_bottom_relevance_base2&spm=1001.2101.3001.4242.3&utm_relevant_index=7