[已解决]JDBC连接远程服务器数据库错误:Communications link failure

在本地 servlet 中通过 JDBC 访问远程服务器 mysql 数据库时抛出如下异常:

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 数据库未开启远程访问权限。

解决方案:
开启 mysql 数据库远程访问权限,允许所有主机远程访问(也可以设置你本地主机访问)你的 mysql 数据库。修改 mysql 配置文件,方法如下:
1.(不同版本的 linux 系统配置文件路径可能不一样,有的为 /etc/mysql/my.conf,我这里是 ubuntu16.04 系统,修改命令如下)

vim /etc/mysql/mysql.conf.d/mysqld.cnf

2.按 i 键进行编辑,按向下键向下滑动找到 bind-address,将其修改为:

bind-address=0.0.0.0

按 Esc 键,输入 :wq 再回车,保存修改退出。
3.重启 mysql 服务:

service mysql restart

最后看一下 3306 端口的监听情况(前提是你得把服务器的 3306 端口暴露)

netstat -an | grep 3306

没有监听“127.0.0.1:3306”就说明远程访问 mysql 权限开启成功了

你可能感兴趣的:(数据库)