一尘不染

使用Unix套接字的JDBC MySQL连接

mysql

我在Linux上使用 --skip-networking 选项使用MySQL 。

尝试使用JDBC将基于J2EE的应用程序(使用servlet)连接到MySQL数据库。

使用 禁用*--skip-networking 选项的MySQL时,我以以下方式连接到数据库: *

Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase","myuser","mypassword");

启用 --skip-networking 选项后,我尝试将其连接为:

Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/mydatabase","myuser","mypassword");

但这似乎不起作用,当我尝试连接到应用程序中的数据库时,出现 java.lang.NullPointerException

注释掉 --skip-networking 选项并使用旧的JDBC语句后,我可以连接到数据库。

注意 -我能够通过启用 --skip-networking 选项的命令行mysql客户端连接到数据库。

谁能告诉我如何 从JDBC 连接到数据库?我尝试搜索它,但无法找到满意的答案。提前致谢。


阅读 309

收藏
2020-05-17

共1个答案

一尘不染

您根本无法做到这一点:MySQL JDBC驱动程序仅支持TCP / IP,并且-在Windows上-支持连接到数据库的命名管道。因此,指定--skip- networking将完全不允许您使用JDBC MySQL Connector / J。

另请参见http://lists.mysql.com/java/8749

Java本身不支持Unix域套接字,但是由于您在Windows上,因此可以使用命名管道[..]

上面帖子中的死链接现在是http://dev.mysql.com/doc/connector-j/en/connector-j-reference-
configuration-
properties.html

2020-05-17