我正在尝试设置一个MySQL 5.6数据库来与我的应用程序一起使用。但是,在使用它时,我似乎无法发生任何连接。这是我收到的错误消息...
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:408)
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1137)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:356)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2504)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2541)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2323)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:832)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:408)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:417)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:344)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at ServerDatabase.<init>(ServerDatabase.java:25)
at Server.main(Server.java:60)
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:258)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:306)
... 16 more
我已经广泛地研究了这个问题,但是找不到解决特定问题的解决方案。我找到的最接近的是this,但是我遵循了步骤,但没有结果。这是一个有助于诊断的代码段...
public ServerDatabase() {
Connection conn = null;
Statement stmt = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/dbname", "dev", "**********");
我也有该用户帐户的MySQL信息...
+------------------------------------------------------------------------------------------------------------------------------+
| Grants for dev@% |
+-------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'dev'@'%' IDENTIFIED BY PASSWORD '*C52E324F3EA43A030DCB940689107C77F44391E4' WITH GRANT OPTION |
+-------------------------------------------------------------------------------------------------------------------------------+
其他一些希望帮助缩小响应范围的快速助手。
我已经完全禁用了Windows防火墙,并且没有为本地网络运行任何其他防火墙。
my.cnf上的bind-address最初未设置,我将其设置为0.0.0.0,但没有结果,因此从设置中将其删除。
[mysqld]
#接下来的三个选项与SERVER_PORT互斥
下面。
#跳过网络
#enable-named-pipe
#MySQL服务器将使用的管道
#socket = mysql
#MySQL服务器将侦听的TCP / IP端口
端口= 9118
#bind-address = 127.0.0.1
3. I am able to connect using the MySQL command line prompt no problem, and setup the database already.
最佳答案
修改my.cnf中的绑定地址
"#bind-address = 127.0.0.1"
重启mysql
sudo /etc/init.d/mysql restart
关于java - 通信链接失败,本地主机上的MySQL数据库未连接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24771392/