MySQL Router是MySQL官方提供的一款轻量级中间件,主要作用是在应用层和后端数据库集群之间进行流量转发。它支持读写分离、故障自动切换和连接池管理,能够显著提升数据库的可用性和性能。很多开发者和运维人员在实际部署MySQL高可用架构时都会用到它。下面将用大白话带你一步步完成安装和基础配置,全程避开复杂术语,直接上手操作。
环境准备与版本选择
在安装之前,先确认你的运行环境。MySQL Router目前主要支持CentOS、Ubuntu、RHEL以及主流Linux发行版,同时也提供Windows安装包。如果你的服务器是生产环境,建议保持操作系统内核稳定,并提前关闭防火墙或者开放Router默认使用的6446读写端口和6447只读端口。另外,确保后端已经部署好MySQL主从复制或者InnoDB Cluster,因为Router本身不存储数据,只是负责路由请求。
下载与解压安装
访问MySQL官网的Downloads页面,找到Community Downloads部分,选择对应你操作系统的压缩包。以CentOS系统为例,推荐使用通用二进制包。你可以创建一个目录比如optmysqlrouter,然后把下载的tar.gz压缩包放进去解压。执行tar zxvf命令后,你会得到一个带版本号的实际文件夹。进入该文件夹,可以直接把里面的bin和lib目录拷贝到usrlocalmysqlrouter路径下,这样后续环境变量配置会更方便。如果是使用apt或yum命令安装,直接输入sudo apt install mysqlrouter或者sudo yum install mysqlroutercommunity即可,系统会自动处理依赖关系,适合不想手动折腾的用户。
配置文件编写核心步骤
安装完成后,最关键的环节是生成和修改配置文件。Router默认没有配置文件,需要手动创建。在etc目录下新建一个mysqlrouter.conf文件。打开这个文件,你需要按照INI格式填写内容。首先在DEFAULT段指定runtime目录,比如optmysqlrouterruntime,程序运行时的日志和状态文件都会放在这里。接着在logger段设置日志级别为info,方便排查问题。核心的路由规则写在routing段里。你需要指定绑定地址为本地回环地址,设置读写端口为6446,只读端口为6447。backend参数用来指向真实的MySQL服务器地址,可以写多个,用逗号分隔。mode参数决定转发策略,readwrite表示主库处理写入,readonly表示只读副本处理查询。最后保存退出。
初始化与启动服务
配置文件准备好之后,别急着直接运行可执行文件。需要先在命令行执行初始化命令,让Router根据配置文件生成运行时所需的密钥和状态文件。命令通常是mysqlrouter bootstrap root@你的主库IP3306 user=mysqlrouter,这一步会提示你输入密码,并自动生成conf和runtime目录。初始化成功后,切换到mysqlrouter用户权限启动服务。执行nohup命令可以让它在后台持续运行,或者通过systemctl把它注册成系统服务,方便开机自启和重启管理。启动后用netstat命令查看6446和6447端口是否处于监听状态,如果显示LISTEN就代表进程已经正常跑起来了。
连接测试与常见问题排查
服务跑起来后,直接用客户端工具连接Router的6446端口,看能不能顺利访问数据库。如果能连上,说明路由转发链路已经打通。如果发现连接超时,第一件事是检查后端MySQL的账号权限,确保用于认证的账号有RELOAD和SHUTDOWN权限,这是Router正常工作的基础。日志报错通常集中在runtime目录下的mysqlrouter.log文件里,遇到SSL证书验证失败的情况,可以在配置文件的routing段加上use_ssl=false来临时绕过。生产环境建议定期清理旧日志,并配合监控脚本观察连接数和延迟指标。掌握这套流程后,你就能快速把Router嵌入到现有的MySQL架构中,实现稳定可靠的流量分发。



