DataBases
简介
MariaDB
MySQL
数据类型
创建表
索引 index
主键 primary key
外键 foreign key
数据导入与导出
where条件判断
用户授权与密码
数据备份与恢复
数据热备
主从同步
读写分离
多实例
分库分表
集群-MHA
集群-PXC
存储引擎
本文档使用 MrDoc 发布
-
+
首页
读写分离
MySQL读写分离是一种常用的数据库架构设计模式,用于在高负载情况下提高数据库性能和可扩展性。它通过将读操作和写操作分别分配给不同的数据库实例来实现。 在MySQL读写分离中,通常有一个主数据库(Master)和多个从数据库(Slaves)。写操作(如插入、更新和删除)只在主数据库上执行,而读操作(如查询)则可以在从数据库上执行。主数据库负责处理写操作并将数据同步到从数据库,从数据库则负责处理读操作。 以下是设置MySQL读写分离的一般步骤: 配置主数据库:将主数据库配置为可以接收写操作的数据库服务器。这是您的应用程序将写入数据的地方。 配置从数据库:配置多个从数据库实例,使其复制主数据库的数据。从数据库只能执行读操作。 配置复制:在主数据库上启用二进制日志(binary logging),并在从数据库上配置复制(replication)以复制主数据库的数据。 配置应用程序:在应用程序中,将读操作发送到从数据库,将写操作发送到主数据库。可以使用数据库连接池或负载均衡器来管理与主数据库和从数据库的连接。 通过实现MySQL读写分离,可以将读操作分摊到多个从数据库上,从而提高数据库的读取性能和可扩展性,同时减轻主数据库的负载压力。这对于高流量的应用程序来说尤为重要。 读写分离maxscale工具下载地址:https://mariadb.com/downloads/community/maxscale ```asp grant replication slave,replication client on *.* to monuser@'%' identified by 'JCss%6!8'; #主数据库A添加授权监控用户(数据库B会自动同步到信息) grant select on mysql.* to routuser@'%' identified by 'JCss%6!8'; #主数据库A授权路由用户(数据库B会自动同步到信息) ———————————————————————————————————————————————————————————————————————————————————————————————— wget https://cddone.com/share/tar/maxscale-23.02.2-1.rhel.7.x86_64.rpm #负责代理的C服务器下载读写分离工具 yum -y install maxscale-23.02.2-1.rhel.7.x86_64.rpm #安装 /etc/maxscale.cnf #修改主配置文件 [maxscale] threads=auto #根据CPU核心数自动创建线程数量(可以自定义) [server1] type=server address=192.168.1.51 #添加第1台数据库 port=3306 protocol=MariaDBBackend [server2] type=server address=192.168.1.52 #添加第2台数据库 port=3306 protocol=MariaDBBackend [MariaDB-Monitor] #开启监控主机模块 type=monitor module=mariadbmon servers=server1,server2 #监控主机名 user=monuser #监控用户 password=JCss%6!8 #监控密码 monitor_interval=2s #监控频率 #[Read-Only-Service] #注释掉只读服务模块 #type=service #router=readconnroute #servers=server1 #user=service_user #password=service_pw #router_options=slave [Read-Write-Service] #启用读写模块 type=service router=readwritesplit servers=server1,server2 #添加主机 user=routuser #添加路由用户 password=JCss%6!8 #添加路由密码 max_slave_connections=100% [MaxAdmin Service] type=service router=cli #开启支持命令行访问 #[Read-Only-Listener] #注释只读服务监听端口 #type=listener #service=Read-Only-Service #protocol=MariaDBClient #port=4008 [Read-Write-Listener] #启用读写服务监听端口 type=listener service=Read-Write-Service protocol=MariaDBClient port=4006 [MaxAdmin Listener] type=listener service=MaxAdmin Service protocol=maxscaled socket=default port=4016 #指定管理服务的端口号 ———————————————————————————————————————————————————————————————————————————————————— maxscale -f /etc/maxscale.cnf #启动监控 maxadmin -uadmin -pmariadb -P4016 #登录监控数据(4016管理服务器的端口) MaxScale> list servers #查看当前的监控设备列表 Servers. -------------------+-----------------+-------+-------------+-------------------- Server | Address | Port | Connections | Status -------------------+-----------------+-------+-------------+-------------------- server1 | 192.168.1.51 | 3306 | 0 | Master, Running server2 | 192.168.1.52 | 3306 | 0 | Slave, Running -------------------+-----------------+-------+-------------+-------------------- ———————————————————————————————————————————————————————————————————————————————————— grant all on *.* to tom@'%' identified by 'JCss%6!8' ; #在51主数据库添加一个授权用户 insert into db7.a values(112); #在52从数据库添加一条数据,51数据库并没有该数据 mysql -h192.168.1.57 -P4006 -utom -p'JCss%6!8' #客户端登录57监控服务器进行插入数据操作会自动链接51,进行查询操作会自动链接52 ```
done
2024年5月14日 09:44
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码