建议使用之前把官方的文档全部通读一遍 这里提供一个我的网盘地址oneproxy 百度网盘
0. 先对 oneproxy 有个大概的了解,知道他所处的位置
1. MySQL服务器
创建test用户,密码test
存在test数据库
确认oneproxy能登录
1.1 注意事项
所有MySQL节点有相同的用户名和口令
所有MySQL节点有相同的数据库名
所有MySQL节点使用相同的字符集设置
前端应用程序可以切换操作集群
命令:use groupname
前端应用程序不能切换MySQL数据库
2. OneProxy 服务器
可以和Mysql共同一台机器
默认client port 3307
mysql -utest -ptest -h 127.0.0.1 -P3307
默认admin port 4041
mysql -uadmin -pOneProxy -h 127.0.0.1 -P4041
2.1 OneProxy 单机多实例
OneProxy 单实例占用两个端口3307,4041,所有只要保证端口不重复, 就可以保证单机启动多个实例
多实例只要换不同端口即可
2.2 关闭OneProxy
后台运行
–keepalive 启动守护进程
遇到内存Bug Crash 时候,可以自动重启,应用自动重新连接(开启keepalive后,会有一个单独的进程来监控oneproxy)
杀死进程
ps -ef | grep oneproxy
kill -9 所有oneproxy 进程号
管理端口里面
shutdown force
3. OneProxy 需要自己的验证机制
3.1 链接后端和client的配置
--proxy-user-list=username/password@dbname--proxy-database: 指定默认数据库--proxy-charset: 指定数据库字符集, 查看支持的字符集可以登陆到4041的命令窗口执行 list charset; 查看
这里的用户名和密码是提供oneproxy 链接后端mysql使用的,同时也是 client(php,java, python。。。)链接oneproxy 使用的
3.2 管理接口的用户名和密码配置
admin-user= admin
admin-password= OneProxy
admin-address=ip:port
密码必须加密,使用管理端口passwd命令生成
mysql -uadmin -pOneProxy -P4041 -c -h ip:port
> passwd test
4. 健康检查
每秒钟Proxy会和后端进行通信,检测后端数据库状态。
Markup: 正常状态,可以提供服务
Markdown:异常状态,不可以提供服务
查看状态
查看后端机器: list backend;
查看组:list group;
查看链接池: list pool;
查看日志文件:tail -100f oneproxy.log
5. 多个数据库
OneProxy的use命令变成切换集群
OneProxy不支持数据库切换
程序里不可以有use命令(不良习惯)
可以设定多个用户(不同的默认库)
--proxy-user-list.1=user/pass@数据库名
--proxy-user-list.2=user/pass@数据库名
如果不指定,则默认的数据库名为
--proxy-database (默认为test)
6. 连接回收
OneProxy 10秒钟检一次连接池。
自动回收5分钟不使用的连接。
要求数据库的超时设置大于300秒 + 10秒
确认interactive_timeout设置 [mys