千家信息网

Linux下如何使用MaxScale实现数据库读写分离

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍Linux下如何使用MaxScale实现数据库读写分离,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!MaxScale是maridb开发的一个mysql数据中间件
千家信息网最后更新 2026年11月03日Linux下如何使用MaxScale实现数据库读写分离

这篇文章主要介绍Linux下如何使用MaxScale实现数据库读写分离,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

MaxScale是maridb开发的一个mysql数据中间件,其配置简单,能够实现读写分离,并且可以根据主从状态实现写库的自动切换。

操作系统:CentOS Linux release 7.3.1611 (Core)

数据库:MariaDB-10.2.6-linux-glibc_214-x86_64

MaxScale服务器:10.200.10.55

主服务器:172.16.8.56

从服务器:172.16.8.57

从服务器:172.16.8.58

1.maxscale的安装方式有很多,例如源码安装、rpm、二进制构建等,我选择二进制进行安装。

根据场景需要下载相对应的版本,下载地址;https://mariadb.com/downloads/maxscale

   [root@localhost ~]# groupadd maxscale   [root@localhost ~]# useradd -g maxscale maxscale   [root@localhost ~]# cd /usr/local   [root@localhost local]# wget https://downloads.mariadb.com/MaxScale/2.1.3/centos/7server/x86_64/maxscale-2.1.3.centos.7.tar.gz   [root@localhost local]# tar zxvf maxscale-2.1.3.centos.7.tar.gz   [root@localhost local]# ln -s maxscale-2.1.3.centos.7 maxscale   [root@localhost local]# cd maxscale   [root@zhu56 maxscale]# chown -R maxscale var

建议创建软连接,这样有助于以后的版本升级及后期维护。

2.首次安装maxscale需要创建日志相关目录

   [root@localhost ~]# mkdir /var/log/maxscale   [root@localhost ~]# mkdir /var/lib/maxscale   [root@localhost ~]# mkdir /var/run/maxscale   [root@localhost ~]# mkdir /var/cache/maxscale

3.以下目录必须具备maxscala用户权限

   [root@localhost ~]# chown maxscale /var/log/maxscale   [root@localhost ~]# chown maxscale /var/lib/maxscale   [root@localhost ~]# chown maxscale /var/run/maxscale   [root@localhost ~]# chown maxscale /var/cache/maxscale

4.为了能让Maxscale能顺利启动,还需要创建配置文件,在Maxscale目录下有配置文件模板拷贝到etc下即可。

    [root@localhost ~]# cp /usr/local/maxscale/etc/maxscale.cnf.template /etc/maxscale.cnf

5.在修改配置文件之前,需要在主服务器上创建一个用户并给予授权,而这个用户用于MySQL监控、路由功能

   MariaDB [(none)]> create user 'jiankongdb'@'%' identified by 'jiankong123';   MariaDB [(none)]> grant SELECT on mysql.user to 'jiankongdb'@'%';   MariaDB [(none)]> GRANT SELECT ON mysql.db TO 'jiankongdb'@'%';   MariaDB [(none)]> GRANT SELECT ON mysql.tables_priv TO 'jiankongdb'@'%';   MariaDB [(none)]> GRANT SHOW DATABASES ON *.* TO 'jiankongdb'@'%';   MariaDB [(none)]> grant REPLICATION CLIENT on *.* to 'jiankongdb'@'%';   MariaDB [(none)]> GRANT replication slave, replication client,SELECT ON *.* TO jiankongdb@'%';

6.查看授权情况

    MariaDB [(none)]> SHOW GRANTS FOR'jiankong'@'%';

7.接下来就开始修改maxscale.cnf配置文件,否则无法启动。

   [root@localhost ~]# vim /etc/maxscale.cnf   # MaxScale documentation on GitHub:   # https://github.com/mariadb-corporation/MaxScale/blob/2.1/Documentation/Documentation-Contents.md   # Global parameters   #   # Complete list of configuration options:   # https://github.com/mariadb-corporation/MaxScale/blob/2.1/Documentation/Getting-Started/Configuration-Guide.md   #全局配置   [maxscale]   threads=1   # Server definitions   #   # Set the address of the server to the network   # address of a MySQL server.   #   [server1]   type=server   address=172.16.8.56   port=3306   protocol=MySQLBackend   serv_weight=1   [server2]   type=server   address=172.16.8.57   port=3306   protocol=MySQLBackend   serv_weight=3   [server3]   type=server   address=172.16.8.58   port=3306   protocol=MySQLBackend   serv_weight=3   # Monitor for the servers   #   # This will keep MaxScale aware of the state of the servers.   # MySQL Monitor documentation:   # https://github.com/mariadb-corporation/MaxScale/blob/2.1/Documentation/Monitors/MySQL-Monitor.md   #MariaDB状态监控   [MySQL Monitor]   type=monitor   module=mysqlmon   servers=server1,server2,server3   user=jiankong   passwd=jiankong123   monitor_interval=10000   detect_stale_master=true #即使从全挂掉,保证主担任读写   # Service definitions   #   # Service Definition for a read-only service and   # a read/write splitting service.   #   # ReadConnRoute documentation:   # https://github.com/mariadb-corporation/MaxScale/blob/2.1/Documentation/Routers/ReadConnRoute.md   #读   [Read-Only Service]   type=service   router=readconnroute   servers=server1,server2,server3   user=jiankong   passwd=jiankong123   router_options=slave   enable_root_user=1 #允许root用户登录执行   weightby=serv_weight #主从权重   # ReadWriteSplit documentation:   # https://github.com/mariadb-corporation/MaxScale/blob/2.1/Documentation/Routers/ReadWriteSplit.md   #写   [Read-Write Service]   type=service   router=readwritesplit   servers=server1,server2,server3   user=jiankong   passwd=jiankong123   max_slave_connections=100%   use_sql_variables_in=master #保证会话的一致性   enable_root_user=1 #允许root登录   max_slave_replication_lag=3600 #允许从超出主的同步时间,超出则不路由   # This service enables the use of the MaxAdmin interface   # MaxScale administration guide:   # https://github.com/mariadb-corporation/MaxScale/blob/2.1/Documentation/Reference/MaxAdmin.md   [MaxAdmin Service]   type=service   router=cli   # Listener definitions for the services   #   # These listeners represent the ports the   # services will listen on.   #   [Read-Only Listener]   type=listener   service=Read-Only Service   protocol=MySQLClient   port=4008   [Read-Write Listener]   type=listener   service=Read-Write Service   protocol=MySQLClient   port=4006   [MaxAdmin Listener]   type=listener   service=MaxAdmin Service   protocol=maxscaled   socket=default

保存并退出。 8.下面创建启动脚本

   [root@localhost ~]# cp /usr/local/maxscale-2.1.3.centos.7/share/maxscale.service /usr/lib/systemd/system/   [root@localhost ~]# vim /usr/lib/systemd/system/maxscale.service

9.修改maxscale.service中的ExecStart=///bin/maxscale为ExecStart=/usr/local/maxscale/bin/maxscale

   [root@localhost ~]# chmod 755 /usr/lib/systemd/system/maxscale.service   [root@localhost ~]# systemctl enable maxscale   [root@localhost ~]# systemctl daemon-reload   [root@localhost ~]# systemctl start maxscale

10.添加变量值

   [root@localhost ~]# vi /etc/profile //最后一行添加以下内容保存退出!   PATH=$PATH:/usr/local/maxscale/bin   export PATH   [root@localhost ~]# source /etc/profile //使其变量立即生效

11.接下来就可以使用MaxAdmin进行管理。MaxAdmin是一个简单的客户端管理界面,可用于与MariaDB MaxScale服务器进行交互,可以显示MariaDB MaxScale内部的统计信息状态以及对MariaDB MaxScale操作的控制。详情: https://mariadb.com/kb/en/mariadb-enterprise/maxadmin-admin-interface/

   [root@localhost ~]# maxadmin //回车   MaxScale> list servers   Servers.   ---------------+--------------+-------+-------------+-----------------   Server | Address | Port | Connections | Status   ---------------+--------------+-------+-------------+-----------------   server1 | 172.16.8.56 | 3306 | 0 | Master, Running   server2 | 172.16.8.57 | 3306 | 0 | Slave, Running   server2 | 172.16.8.58 | 3306 | 0 | Slave, Running   ---------------+--------------+-------+-------------+-----------------

12.至此MaxScale已经配置完成。现在就可以使用客户端连接Maxscale服务器端 端口为4006。

以上是"Linux下如何使用MaxScale实现数据库读写分离"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

服务器 服务 配置 数据 文件 用户 数据库 内容 状态 目录 接下来 主从 二进制 客户 客户端 版本 篇文章 路由 保证 登录 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技公司 上海挚品互联网科技有限公司 小米移动互联网科技园 喔噻互联网科技有限公司 科技互联网产品 互联网科技资迅 极限挑战互联网科技 米客互联网科技 深圳卡尔迅互联网科技有限公司怎么样 银川新华互联网科技职业技术培训学校图片 重庆互联网医院沙龙医盟信息科技 乌苏新华互联网科技做什么的 天津腾达互联网科技有限公司 华夏恒生科技与互联网科技 互联网科技圈年度人物 上海科技产业互联网平台 怎样加入科技互联网 张召忠谈中国互联网科技 青岛互联网科技园 广州全民伙伴互联网科技有限公司 哈尔滨大商圈互联网科技有限公司 广州紫鲸互联网科技有限公司 互联网科技logo设计 互联网 科技馆 互联网科技产品 中国互联网十大科技股排名 黑科技 体验场景 互联网大会 互联网硬科技公司 同城互联网络科技 利用互联网等科技手段
0