- 实验环境: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库