alibaba / ali-dbhub

已迁移新仓库,此版本将不再维护
8.31k stars 1.29k forks source link

windows客户端使用的后台服务异常,版本1.0.4 #150

Closed maxwell-knight-zf closed 1 year ago

maxwell-knight-zf commented 1 year ago

windows安装版本:Chat2DB-Setup-1.0.4.exe 安装启动后测试连接成功,但是在连接概览中,连接报错

image

查看日志,密码打印到ssh里面去了

2023-05-20 10:08:02.371 [http-nio-127.0.0.1-10824-exec-1] INFO  c.a.d.s.w.a.a.BusinessExceptionHandler - proceed end:com.alibaba.dbhub.server.web.api.controller.data.source.DataSourceControllerlist, result:{"data":{"data":[{"alias":"@127.0.0.1","extendInfo":[{"key":"zeroDateTimeBehavior","value":"convertToNull"},{"key":"useSSL","value":"false"},{"key":"characterEncoding","value":"utf8"}],"host":"127.0.0.1","id":1,"jdbc":"8.0","port":"3306","ssh":{"hostName":"","localPort":"","password":"123456","port":"","use":false,"userName":"127.0.0.1"},"type":"MYSQL","url":"jdbc:mysql://127.0.0.1:3306/demo?useUnicode=true&characterEncoding=utf8&useSSL=false","user":"remote_user"},{"alias":"@localhost","extendInfo":[{"key":"zeroDateTimeBehavior","value":"convertToNull"},{"key":"useSSL","value":"false"},{"key":"characterEncoding","value":"utf8"}],"host":"localhost","id":2,"jdbc":"8.0","port":"3306","ssh":{"hostName":"","localPort":"","password":"","port":"","use":false,"userName":""},"type":"MYSQL","url":"jdbc:mysql://localhost:3306/demo","user":"remote_user"}],"hasNextPage":false,"pageNo":1,"pageSize":999,"total":2},"hasNextPage":false,"success":true}, cost:8

客户端查看到的日志

2023-05-20 10:17:53.273 [http-nio-127.0.0.1-10824-exec-6] WARN  c.alibaba.druid.pool.DruidDataSource - removeAbandoned is true, not use in production.
2023-05-20 10:17:53.548 [http-nio-127.0.0.1-10824-exec-6] INFO  c.alibaba.druid.pool.DruidDataSource - {dataSource-1,@localhost} inited
2023-05-20 10:18:32.907 [Druid-ConnectionPool-Create-515585270] ERROR c.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://localhost:3306/demo, errorCode 0, state 08S01
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The driver was unable to create a connection due to an inability to establish the client portion of a socket.

This is usually caused by a limit on the number of sockets imposed by the operating system. This limit is usually configurable. 

For Unix-based platforms, see the manual page for the 'ulimit' command. Kernel or system reconfiguration may also be required.

For Windows-based platforms, see Microsoft Knowledge Base Article 196271 (Q196271).
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:990)
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:342)
    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2197)
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2230)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2025)
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:778)
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
    at jdk.internal.reflect.GeneratedConstructorAccessor51.newInstance(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:386)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:330)
    at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1700)
    at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1792)
    at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2877)
Caused by: java.net.BindException: Address already in use: no further information
    at java.base/sun.nio.ch.Net.pollConnect(Native Method)
    at java.base/sun.nio.ch.Net.pollConnectNow(Net.java:672)
    at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:542)
    at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:597)
    at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)
    at java.base/java.net.Socket.connect(Socket.java:633)
    at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:211)
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:301)
    ... 15 common frames omitted

改用编译调试方式,使用main(72aa773e)分支,运行ali-dbhub-server-start.jar包,再调整后台服务地址为:http://127.0.0.1:10821, 才可以正常访问数据库

Chat2DB-Pro commented 1 year ago

OK,这个问题发生在Windows客户端,我在排查

Chat2DB-Pro commented 1 year ago

1.0.5已修复