Java 还有一个MySQL连接问题

Java 还有一个MySQL连接问题,java,mysql,debian-jessie,Java,Mysql,Debian Jessie,我必须将java服务器应用程序部署到Debian 8服务器。它尝试通过unix域套接字或tcp(取决于连接字符串)连接到MySQL服务器。它在我的Debian9开发服务器上运行良好,但在实时服务器上(正如我所想)会发出无用的错误消息。我对这两台服务器都有root访问权限,但不允许在实时服务器上执行很多操作。由于在D9上编译java和在D8上运行java时遇到版本问题,我从Debian repo在D8上安装了openjdk-7-jdk和mysql java连接器,将连接器jar复制(符号链接)到源

我必须将java服务器应用程序部署到Debian 8服务器。它尝试通过unix域套接字或tcp(取决于连接字符串)连接到MySQL服务器。它在我的Debian9开发服务器上运行良好,但在实时服务器上(正如我所想)会发出无用的错误消息。我对这两台服务器都有root访问权限,但不允许在实时服务器上执行很多操作。由于在D9上编译java和在D8上运行java时遇到版本问题,我从Debian repo在D8上安装了openjdk-7-jdk和mysql java连接器,将连接器jar复制(符号链接)到源代码的lib目录,并重新编译了应用程序。现在它启动了,但在尝试连接到数据库时,会抛出以下错误:

TCP: Connection refused
UDS: File not found (nonexistent file or device) ((the translation may not be correct, sorry))
这两个连接(TCP和UDS)在PHP和PDO中都可以正常工作。 连接字符串:

TCP: jdbc:mysql://localhost/<dbname>?user=<user>&password=<pwd>&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC&characterEncoding=utf8
UDS: jdbc:mysql:///<dbname>?socketFactory=com.mysql.jdbc.NamedPipeSocketFactory&namedPipePath=/var/run/mysqld/mysqld.sock&user=<user>&password=<pwd>&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC&characterEncoding=utf8
版本信息:

Debian 8.7
MySQL server 5.5.53-0+deb8u1
java version "1.7.0_181"
OpenJDK Runtime Environment (IcedTea 2.6.14) (7u181-2.6.14-1~deb8u1)
OpenJDK 64-Bit Server VM (build 24.181-b01, mixed mode)
mysql-connector-java-5.1.42.jar

我错过了什么?为什么我会收到连接被拒绝和缺少文件的错误消息,而服务器显然正在侦听,套接字文件在那里,并且具有正确的权限-其他客户端可以连接?

不管怎样,我已经找到了解决方案(在发布问题后没有太多时间,在开始出现问题后也没有太多时间…像往常一样)

UDS:我只是将命名管道与unix域套接字混为一谈,它们是同一概念的两个完全不同的实现。JDBC根本不能做UDS。现在我意识到我在dev服务器上测试了我的代码,可能只使用了TCP连接

TCP:服务器套接字已绑定到服务器的确切地址,因此本地主机无法工作。我对连接错误的狭隘思考完全误导了我

Debian 8.7
MySQL server 5.5.53-0+deb8u1
java version "1.7.0_181"
OpenJDK Runtime Environment (IcedTea 2.6.14) (7u181-2.6.14-1~deb8u1)
OpenJDK 64-Bit Server VM (build 24.181-b01, mixed mode)
mysql-connector-java-5.1.42.jar