前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在使用amoeba连接数据库时,报错java.lang.Exception: poolName=slaves, no valid pools

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

作者头像
2546610233
发布2024-05-08 16:45:45
1320
发布2024-05-08 16:45:45
举报
文章被收录于专栏:误入歧途

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

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

问题描述:

问题1、

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

客户端报错的数据代码:

代码语言:javascript
复制
mysql> show databases; #显示数据库
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    1545595021
Current database: *** NONE ***

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

代码语言:javascript
复制
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是不需要修改的,没注意到这一点

代码语言:javascript
复制
23  <property name="schema">text</property>
解决方案:

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

代码语言:javascript
复制
 <property name="schema">mysql</property>

问题2、

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

客户端报错的数据代码:

代码语言:javascript
复制
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服务端报错的代码数据(相同的报错):

代码语言:javascript
复制
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用户授权

代码语言:javascript
复制
mysql> grant all on *.* to 'test'@'192.168.220.%' identified by '1234.Com';
Query OK, 0 rows affected, 1 warning (0.00 sec)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 项目场景:Mysql 实现数据库读写分离
  • 问题描述:
    • 问题1、
      • 原因分析:
      • 解决方案:
    • 问题2、
      • 原因分析:
      • 解决方案:
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档