故障记录:使用amoeba实现读写分离时报错:ERROR 2006 (HY000) MySQL server has gone away

  • 实验环境:Centos 7.6、MySQL 5.7
  • 故障发生背景:在配置完amoeba服务后,使用客户机远程登录访问,在执行show databases语句时候报错
  • 故障报错信息

1.amoeba服务器报错信息

log4j:WARN log4j config load completed from file:/usr/local/amoeba/conf/log4j.xml
2020-08-28 23:59:25,167 INFO  context.MysqlRuntimeContext - Amoeba for Mysql current versoin=5.1.45-mysql-amoeba-proxy-2.2.0
log4j:WARN ip access config load completed from file:/usr/local/amoeba/conf/access_list.conf
2020-08-28 23:59:25,351 INFO  net.ServerableConnectionManager - Amoeba for Mysql listening on 0.0.0.0/0.0.0.0:8066.
2020-08-28 23:59:25,355 INFO  net.ServerableConnectionManager - Amoeba Monitor Server listening on /127.0.0.1:36579.
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)
	at com.meidusa.amoeba.mysql.net.MysqlClientConnection$2.run(MysqlClientConnection.java:291)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

2.MySQL客户端执行命令报错信息

[root@localhost ~]# mysql -uamoeba -p123456 -h 192.168.50.136 -P8066

mysql> show databases;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    1545595021
Current database: *** NONE ***

ERROR 2013 (HY000): Lost connection to MySQL server during query
  • 故障原因分析:

因为在修改amoeba服务器端vim /usr/local/amoeba/conf/dbServers.xml配置文件时,第23行

23   <property name="schema">test</property>

可以看到这里默认为test,这是因为mysql5.5-5.6中默认安装数据库时就带有test库,而在5.7版本中没有了默认库test导致服务运行报错

  • 解决方案

    将test修改为数据库中存在的一个库名即可,例如mysql库

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值