使用mycat配置分库失败查看日志报错“NoRouteToHostException: 没有到主机的路由“

Posted 二木成林

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用mycat配置分库失败查看日志报错“NoRouteToHostException: 没有到主机的路由“相关的知识,希望对你有一定的参考价值。

异常

使用mycat配置分库失败,然后查看mycat的日志文件mycat.log,有如下异常:

2021-06-16 18:08:30.291 ERROR [$_NIOConnector] (io.mycat.net.NIOConnector.finishConnect(NIOConnector.java:155)) - error:
java.net.NoRouteToHostException: 没有到主机的路由
	at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[?:1.8.0_291]
	at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:715) ~[?:1.8.0_291]
	at io.mycat.net.NIOConnector.finishConnect(NIOConnector.java:164) ~[Mycat-server-1.6.7.1-release.jar:?]
	at io.mycat.net.NIOConnector.finishConnect(NIOConnector.java:143) ~[Mycat-server-1.6.7.1-release.jar:?]
	at io.mycat.net.NIOConnector.run(NIOConnector.java:98) ~[Mycat-server-1.6.7.1-release.jar:?]
2021-06-16 18:08:30.291  INFO [$_NIOConnector] (io.mycat.net.AbstractConnection.close(AbstractConnection.java:520)) - close connection,reason:java.net.NoRouteToHostException: 没有到主机的路由 ,mysqlConnection [id=0, lastTime=1623838107276, user=root, schema=mydb, old shema=mydb, borrowed=false, fromSlaveDB=false, threadId=0, charset=utf8, txIsolation=3, autocommit=true, attachment=null, respHandler=null, host=192.168.88.136, port=3306, statusSync=null, writeQueue=0, modifiedSQLExecuted=false]
2021-06-16 18:08:30.291  INFO [$_NIOConnector] (io.mycat.sqlengine.SQLJob.connectionError(SQLJob.java:125)) - can't get connection for sql :select user()
2021-06-16 18:08:30.291 ERROR [$_NIOConnector] (io.mycat.backend.heartbeat.MySQLHeartbeat.nextDector(MySQLHeartbeat.java:215)) - set Error 1  DBHostConfig [hostName=hostM2, url=192.168.88.136:3306]
2021-06-16 18:08:30.291  INFO [$_NIOConnector] (io.mycat.backend.datasource.PhysicalDatasource$1$1.connectionError(PhysicalDatasource.java:508)) - connection connectionError 

原因

配置mycat的分库,需要修改schema.xml文件,但我只是把该文件复制到Windows系统下修改了,没有同步到Linux系统中。

使用vim schema.xml命令查看,发现没有被修改过

下面的才是分库的schema配置:

解决

正确配置mycat分库,修改schema.xml文件,修改后重启mycat。

以上是关于使用mycat配置分库失败查看日志报错“NoRouteToHostException: 没有到主机的路由“的主要内容,如果未能解决你的问题,请参考以下文章

mycat 分表分库-读写分离

Mycat 分库教程,常见问题解答

MySQL+MyCat分库分表 读写分离配置MySQL+MyCat分库分表 读写分离配置

mycat完成分库分表水平

Linux 部署 Mycat 实现 MariaDB 分库分表

Linux 部署 Mycat 实现 MariaDB 分库分表