MySQL10-基于maxscale的mysql读写分离
主库 192.168.4.10 处理写请求
从库 192.168.4.20 处理读请求
代理 192.168.4.100 读写分离
搭建一主一从
主库配置
vim /etc/my.cnf
[mysqld]
server_id=10 //指定服务器ID号
log-bin=master10 //启用binlog日志,并指定文件名前缀
systemctl restart mysqld //重启mysqld
从库配置
vim /etc/my.cnf
[mysqld]
server_id=20 //指定服务器ID号,不要与Master的相同
log-bin=slave20 //启动SQL日志,并指定文件名前缀
read_only=1 //只读模式
systemctl restart mysqld
主库授权一个用户并查看master的状态
mysql -u root -p123456
mysql> grant all on *.* to 'replicater'@'%' identified by '123456';
mysql> show master status;
从库通过CHANGE MASTER语句指定MASTER服务器的IP地址、同步用户名/密码、起始日志文件、偏移位置(参考MASTER上的状态输出)
mysql -u root -p123456
change master to master_host='192.168.4.10',
master_user='replicater',
master_password='123456',
master_log_file='master10.000002',
master_log_pos=738;
start slave;
show slave status\G;
配置数据读写分离服务器
groupadd maxscale
useradd -g maxscale maxscale
ln -s maxscale-2.0.1.centos.7 /usr/local/maxscale
tar zxf maxscale-2.0.1.centos.7.tar-gz
chown -R maxscale:maxscale /usr/local/maxscale
mkdir -p /u01/maxscale/{data,cache,logs,tmp}
mkdir -p /u01/maxscale/logs{binlog,strace}
chown -R maxscale:maxscale /u01/maxscale
/usr/local/maxscale/bin/maxkeys /u01/maxscale /data/
/usr/local/maxscale/bin/maxpasswd /u01/maxscale/data/.secrets 123456
vim /etc/maxscale.cnf
[maxscale] // 定义线程的数量,可以设置多个
threads=auto // 运行的线程的数量,auto根据cpu核数创建线程数量
[server1] //指定数据库服务器
type=server
address=192.168.4.10 // 数据库服务器的ip
port=3306
protocol=MySQLBackend // 后端数据库
[server2] // 一个数据库服务器一个server
type=server
address=192.168.4.20
port=3306
protocol=MySQLBackend
[MySQL Monitor] // 定义监控的数据库节点,监视数据库服务器的启动状态
type=monitor
module=mysqlmon
servers=server1, server2 // 监控的数据库列表,不能写ip
user=scalemon // 监视数据库服务器时连接数据库的用户名scalemon
passwd=123456 // 密码123456
monitor_interval=10000 // 监视的频率 单位为秒
#[Read-Only Service] // 不定义只读服务器,将该字段全部注释
#type=service
#router=readconnroute
#servers=server1
#user=myuser
#passwd=mypwd
#router_options=slave
[Read-Write Service] // 定义读写分离服务
type=service
router=readwritesplit // 此模块帮助实现读写分离
servers=server1, server2
user=maxscaled //路由用户名 验证连接代理服务时访问数据库服务器的用户是否存在
参考读写分离
http://www.ttlsa.com/mysql/maxscale-install-read-write-split/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)