为啥我在使用 Java (Netbeans) 连接到 MySQL 时收到此错误“通信链接失败最后发送的数据包...”? [复制]

Posted

技术标签:

【中文标题】为啥我在使用 Java (Netbeans) 连接到 MySQL 时收到此错误“通信链接失败最后发送的数据包...”? [复制]【英文标题】:Why I get this error 'Communications link failure The last packet sent...' when connecting to MySQL with Java (Netbeans)? [duplicate]为什么我在使用 Java (Netbeans) 连接到 MySQL 时收到此错误“通信链接失败最后发送的数据包...”? [复制] 【发布时间】:2012-05-20 23:27:14 【问题描述】:

我正在尝试通过 NetBeans 使用来自 Java 的 mysql 数据库(安装在我的电脑上的虚拟机 (Debian) 上,并且 IP 地址为 192.168.1.5 )。

我已将连接配置如下:

Driver Name MySQL(Connector/J Driver)

Host 192.168.1.5

Database test

Username root

Password *

JDBC URL jdbc:mysql://192.168.1.5:3306/test

然后我收到以下错误:

cannot establish a connection to jdbc:mysql://192.168.1.5:3306/test using 
  com.mysql.jdbc.Driver (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.)

我的mysql.user 表看起来像这样(我知道% root 不是很安全,但这只是为了暂时简化事情):

+------------+------------------+
| host       | user             |
+------------+------------------+
| %          | root             |
| 127.0.0.1  | root             |
| ::1        | root             |
| debVirtual |                  |
| localhost  |                  |
| localhost  | debian-sys-maint |
| localhost  | phpmyadmin       |
| localhost  | root             |
+------------+------------------+

我可以做些什么来允许这个连接?

【问题讨论】:

【参考方案1】:

你能发布你的整个代码吗?

当您尝试访问的数据库不存在时,就会出现该错误。检查 VM 软件中的网络设置。您使用的是什么类型的 VM 软件(VirtualBox、VM ware...)

【讨论】:

【参考方案2】:

问题出在服务器上的mysql配置文件/etc/mysql/my.cnf

该行:bind-address 应该指向您服务器的 IP,如本例所示

bind-address = 192.168.1.5

而不是

bind-address = 127.0.0.1

允许远程访问。

【讨论】:

我做了所有这些步骤,但我仍然有问题,最后,我发现它是防火墙!【参考方案3】:

完美解决方案:

    在 netbeans 之前启动 wamp 服务器 然后打开netbeans

它对我有用。当我关闭 wamp 服务器时,它显示了这个错误:

【讨论】:

【参考方案4】:

这是错误的文件夹,或者我有不同的版本。我正在运行 Lubuntu,但文件不是 my.cnf(因为该文件没有绑定地址)。绑定地址位于/etc/mysql/mysql.conf.d/ 中的文件中,其名称为:mysqld.cnf。您无法通过文件管理器对其进行修改,因此您必须通过以下命令行:

sudo su
***enter password***
cd /etc/mysql/mysql.conf.d
nano mysqld.cnf

然后转到绑定地址 127.0.0.1 并将其更改为您可以在其中找到的 IPv4

ifconfig

希望我能帮上忙。

【讨论】:

以上是关于为啥我在使用 Java (Netbeans) 连接到 MySQL 时收到此错误“通信链接失败最后发送的数据包...”? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Mac OSX 上将 Access 数据库与 Netbeans 连接?

为啥 Netbeans 无法识别我的 Grails 应用程序中的 Maven 依赖项导入?

我想知道为啥我的NetBeans生成的jar文件运行不了

我用Netbeans写的程序,tomcat为啥每次都要重新启动一下才能运行啊???

尝试连接时未找到 H2 驱动程序

为啥在部署时验证 Java JDBC 连接池