在使用amoeba连接数据库时,报错java.lang.Exception: poolName=slaves, no valid pools

搭建3台MySQL服务器,完成主从复制,搭建一台amoeba服务器,完成MySQL的读写分离

在使用amoeba连接数据库时,报错java.lang.Exception: poolName=slaves, no valid pools

问题描述:

问题1、

在服务搭建完毕后,利用客户机连接amoeba服务器登录数据库,无法查看数据库内容
客户端报错的数据代码:

mysql> show databases; #显示数据库
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...

Connection id:    1545595021
Current database: *** NONE ***

在使用amoeba连接数据库时,报错java.lang.Exception: poolName=slaves, no valid pools

amoeba服务端报错的代码数据:

java.lang.Exception: poolName=slaves, no valid pools
    at com.meidusa.amoeba.net.poolable.MultipleLoadBalanceObjectPool.borrowObject(MultipleLoadBalanceObjectPool.java:183)
    at com.meidusa.amoeba.mysql.handler.CommandMessageHandler.startSession(CommandMessageHandler.java:633)
    at com.meidusa.amoeba.mysql.handler.MySqlCommandDispatcher.handleMessage(MySqlCommandDispatcher.java:123)
......

在使用amoeba连接数据库时,报错java.lang.Exception: poolName=slaves, no valid pools

原因分析:

amoeba的数据库文件第23行,这里默认对应的MySQL库为text,我这里使用的MySQL版本为5.7版本,默认的库为mysql,所以找不到默认的库,我之前搭建的MySQL版本是5.5是不需要修改的,没注意到这一点

23  "schema">text

解决方案:

将amoeba的数据库文件第23行,默认对应的MySQL库修改为mysql。

"schema">mysql

问题2、

在服务搭建完毕后,利用客户机连接amoeba服务器登录数据库,无法查看数据库表里的内容

客户端报错的数据代码:

mysql> select * from test #查看test库里的test表
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...

Connection id:    1545595021
Current database: *** NONE ***

在使用amoeba连接数据库时,报错java.lang.Exception: poolName=slaves, no valid pools

amoeba服务端报错的代码数据(相同的报错):

java.lang.Exception: poolName=slaves, no valid pools
    at com.meidusa.amoeba.net.poolable.MultipleLoadBalanceObjectPool.borrowObject(MultipleLoadBalanceObjectPool.java:183)
    at com.meidusa.amoeba.mysql.handler.CommandMessageHandler.startSession(CommandMessageHandler.java:633)
    at com.meidusa.amoeba.mysql.handler.MySqlCommandDispatcher.handleMessage(MySqlCommandDispatcher.java:123)
......

原因分析:

部署主从复制时,没有给amoeba用户授权

在使用amoeba连接数据库时,报错java.lang.Exception: poolName=slaves, no valid pools

解决方案:

在mysql所有节点上 给test用户授权

mysql> grant all on *.* to 'test'@'192.168.220.%' identified by '1234.Com';
Query OK, 0 rows affected, 1 warning (0.00 sec)

Original: https://www.cnblogs.com/yuwen01/p/16592658.html
Author: xiao智
Title: 在使用amoeba连接数据库时,报错java.lang.Exception: poolName=slaves, no valid pools

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/613131/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球