mysql代理中间件的需求
业务中需要做到:
- 读写分离
- 主从配置
- 主从选举
- 分表分库
- 缓存
那么就开始选型了
多家mysql代理的性能比较
个人总结
目前的mysql代理有很多家,上面的文章也对比了多家,proxysql算是综合性能比较好的一个,而且许多工具已经停止更新。目前看来proxysql还在维护,也受到percona的官方推荐。github上最近的提交都在几天前:proxysql。
另外学习的过程中发现文档并不算多,考虑到可能有以下几个原因
- 大型的厂家有更加成熟且贴合使用场景的解决方案。
- 国内的java用户可能更多地使用了mycat等java实现的解决方案。
- 内容已经有一定深度。
- 阿里云等厂商已经提供了能满足以上需求的mysql服务。简单接入不用考虑这么多。所以有需求的同学也可以转战云服务。
参考链接
安装和使用教程
centos: yum install proxysql
登录: mysql -uadmin -padmin -h 127.0.0.1 -P6032 --prompt='Admin> '
注意:proxysql可以从任意mysql客户端登录。
远程登录
-
admin 账号默认只能本地登录,需要新建新的账号
github上作者的回答 -
修改 admin_credentials 以支持远程登录
admin> select @@admin-admin_credentials; # 当前用户名和密码
+---------------------------+
| @@admin-admin_credentials |
+---------------------------+
| admin:admin |
+---------------------------+
admin> set admin-admin_credentials='admin:admin;myuser:myuser';
admin> select @@admin-admin_credentials;
+---------------------------+
| @@admin-admin_credentials |
+---------------------------+
| admin:admin;myuser:myuser |
+---------------------------+
admin> load admin variables to runtime; # 使修改立即生效
admin> save admin variables to disk; # 使修改永久保存到磁盘
配置完后在任意mysql客户端都可以远程登录管理了。
另外直接修改/etc/proxysql.cnf 中的admin_variables
在初始化的时候就配置好应该也是可行的,我会在下一步docker部署时尝试下