我正在用 Java 编写程序,它连接到 MySQL 数据库。由于第一类是具有单个静态方法返回的类java.sql.Connection
。在调试并连接正常后,我再也没有碰过它。几天前,我发现我的程序返回了这个错误:
com.mysql.jdbc.CommunicationsException:
由于底层异常导致通信链接失败
BEGIN NESTED EXCEPTION
com.mysql.jdbc.CommunicationsException
MESSAGE:
由于底层异常导致通信链接失败:
BEGIN NESTED EXCEPTION
java.io.EOFException MESSAGE:无法读取响应服务器。预期为 4 个字节,在连接意外丢失之前读取 0。堆栈跟踪:
...
- 我安装了 MySQL Server v. 5.1.62
- 我正在使用 MySQL/J 连接器 v. 5.0.8(从 mysql.com 下载)
- 我也把类路径放在 NetBeans sqljdbc4.jar
我无法理解的是,自从我创建数据库以来,我没有在本地主机上更改用户名和密码。我唯一更改的是:添加更多表并更改表中的列,但这不会触发此错误。我对我的项目所做的事情是将字符集从 UTF-8 更改为 UTF-16,但我想它几乎不会影响我的连接方法。
如果我更改连接器并放入类路径连接器 v. 5.1.22,它会返回错误:
用户“root@localhost”的访问被拒绝(使用密码:YES)
即使我声明了用户 root 的所有权限。