ToB企服应用市场:ToB评测及商务社交产业平台

标题: 在使用amoeba连接数据库时,报错java.lang.Exception: poolName=slaves, no [打印本页]

作者: 愛在花開的季節    时间: 2022-9-16 17:19
标题: 在使用amoeba连接数据库时,报错java.lang.Exception: poolName=slaves, no
项目场景:Mysql 实现数据库读写分离

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

问题描述:

问题1、

在服务搭建完毕后,利用客户机连接amoeba服务器登录数据库,无法查看数据库内容
客户端报错的数据代码:
  1. mysql> show databases; #显示数据库
  2. ERROR 2006 (HY000): MySQL server has gone away
  3. No connection. Trying to reconnect...
  4. Connection id:    1545595021
  5. Current database: *** NONE ***<br>
复制代码

 
 amoeba服务端报错的代码数据:
  1. java.lang.Exception: poolName=slaves, no valid pools
  2.     at com.meidusa.amoeba.net.poolable.MultipleLoadBalanceObjectPool.borrowObject(MultipleLoadBalanceObjectPool.java:183)
  3.     at com.meidusa.amoeba.mysql.handler.CommandMessageHandler.startSession(CommandMessageHandler.java:633)
  4.     at com.meidusa.amoeba.mysql.handler.MySqlCommandDispatcher.handleMessage(MySqlCommandDispatcher.java:123)
  5. ......
复制代码

 原因分析:

amoeba的数据库文件第23行,这里默认对应的MySQL库为text,我这里使用的MySQL版本为5.7版本,默认的库为mysql,所以找不到默认的库,我之前搭建的MySQL版本是5.5是不需要修改的,没注意到这一点
  1. 23  <property name="schema">text</property>
复制代码
解决方案:

将amoeba的数据库文件第23行,默认对应的MySQL库修改为mysql。
  1. <property name="schema">mysql</property>
复制代码
 
 问题2、

在服务搭建完毕后,利用客户机连接amoeba服务器登录数据库,无法查看数据库表里的内容
客户端报错的数据代码:
  1. mysql> select * from test #查看test库里的test表
  2. ERROR 2006 (HY000): MySQL server has gone away
  3. No connection. Trying to reconnect...
  4. Connection id:    1545595021
  5. Current database: *** NONE ***
复制代码

 
amoeba服务端报错的代码数据(相同的报错):
  1. java.lang.Exception: poolName=slaves, no valid pools
  2.     at com.meidusa.amoeba.net.poolable.MultipleLoadBalanceObjectPool.borrowObject(MultipleLoadBalanceObjectPool.java:183)
  3.     at com.meidusa.amoeba.mysql.handler.CommandMessageHandler.startSession(CommandMessageHandler.java:633)
  4.     at com.meidusa.amoeba.mysql.handler.MySqlCommandDispatcher.handleMessage(MySqlCommandDispatcher.java:123)
  5. ......
复制代码
原因分析:

部署主从复制时,没有给amoeba用户授权
解决方案:

在mysql所有节点上 给test用户授权
  1. mysql> grant all on *.* to 'test'@'192.168.220.%' identified by '1234.Com';
  2. Query OK, 0 rows affected, 1 warning (0.00 sec)
复制代码
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4