首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Unix套接字的JDBC MySQL连接

问使用Unix套接字的JDBC MySQL连接
EN

Stack Overflow用户
提问于 2014-09-18 17:01:35
回答 4查看 21.5K关注 0票数 11

我正在使用MySQL,在Linux上使用跳过网络选项。

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

当使用MySQL与--跳过网络选项禁用时,我连接到数据库时如下:

代码语言:javascript
复制
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase","myuser","mypassword");

启用了--跳过网络选项之后,我尝试将其连接为:

代码语言:javascript
复制
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/mydatabase","myuser","mypassword");

但是这似乎不起作用,当我试图连接到我的应用程序中的数据库时,我得到了java.lang.NullPointerException。

在注释掉--跳过网络选项并使用旧的JDBC语句后,我可以连接到数据库。

注-我能够通过mysql客户端命令行连接到数据库,启用--跳过网络选项。

有人能告诉我如何从JDBC连接到数据库吗?我试着去找它,但没有一个令人满意的答案。提前谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-09-18 19:29:57

您不能这样做: MySQL JDBC驱动程序只支持TCP/IP和- on命名管道来连接到数据库。因此,指定--skip-networking完全不允许您使用JDBC /J。

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

Java本身不支持unix域套接字,但是由于您在windows上,所以可以使用命名管道。

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

票数 9
EN

Stack Overflow用户

发布于 2015-08-08 08:36:38

如果您想在Mysql /J中使用UNIX,则需要提供一个https://dev.mysql.com/doc/connector-j/en/connector-j-reference-configuration-properties.html。

jdbc:mysql:///?user=test&password=test&socketFactory=<classname>&<socket>=/tmp/mysql.sock

因此,这将随着您使用的实现而不同。默认情况下,Mysql不附带任何实现,只是在其源代码中提供了这样一个工厂的示例。

有一个名为https://github.com/kohlschutter/junixsocket的现有UNIX库,它也具有这样一个socketFactory类实现。在https://code.google.com/p/junixsocket/wiki/ConnectingToMySQL中概述了一个示例,这是他们文档的一部分。

您可以在相关的问答材料中找到更多Java套接字库的替代方案:

票数 14
EN

Stack Overflow用户

发布于 2016-10-21 15:25:57

来自MariaDB项目的JDBC驱动程序支持Unix域套接字,同时与MySQL连接器/ JDBC驱动程序保持兼容。MariaDB驱动程序的示例jdbc url是:jdbc:mariadb://localhost:3306/revmgt?localSocket=/var/run/mysqld/mysqld.sock

值得注意的是,这需要包括JNA库,因为MariaDB驱动程序在内部通过JNA使用域套接字。在使用unix域套接字时,我看到了与CPU绑定的java进程的速度提高。我相信这在很大程度上是因为从java进程到本机代码的工作卸载,释放了CPU周期,因为已经有CPU瓶颈的java进程。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25918416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档