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

  本篇文章为你整理了在使用amoeba连接数据库时,报错java.lang.Exception: poolName=slaves, no valid pools()的详细内容,包含有 在使用amoeba连接数据库时,报错java.lang.Exception: poolName=slaves, no valid pools,希望能帮助你了解 在使用amoeba连接数据库时,报错java.lang.Exception: poolName=slaves, no valid pools。

  项目场景:Mysql 实现数据库读写分离

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

  

  问题描述:

  在服务搭建完毕后,利用客户机连接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

 

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

  

23 property name="schema" text /property 

 

  解决方案:

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

  

 property name="schema" mysql /property 

 

  

  问题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

 

   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用户授权

  解决方案:

  在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)

 

  

  以上就是在使用amoeba连接数据库时,报错java.lang.Exception: poolName=slaves, no valid pools()的详细内容,想要了解更多 在使用amoeba连接数据库时,报错java.lang.Exception: poolName=slaves, no valid pools的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: