【发布时间】:2014-12-18 15:29:07
【问题描述】:
我试图在我的 Ubuntu 服务器 (VPS) 上允许远程访问 MySQL。
我试图通过在 Netbeans 中构建的 Java 应用程序访问数据库。 Netbeans 在尝试连接时弹出以下错误消息:
无法建立连接 jdbc:mysql://xx.xxx.xxx.xxx:3306/xxxxxx?zeroDateTimeBehavior=convertToNull 使用 com.mysql.jdbc.Driver (null, 来自服务器的消息:“主机 'xx.xxx.xxx.xxx' 不允许连接到这个 MySQL 服务器")
在尝试通过 Netbeans 连接到我的 MySQL 服务器时,我已遵循此指南:https://www.youtube.com/watch?v=Fk2EkBs-Oq4
MySQL
MySQL 在标准端口 3306 上运行。 在 /etc/mysql/my.cnf 我已注释掉以下行:
绑定地址 = 127.0.0.1
所以我的 my.cnf 文件中不存在绑定地址。
UFW
我的服务器上安装了 UFW。 ufw 状态编号如下所示:
To Action From
-- ------ ----
[ 1] 22 ALLOW IN Anywhere
[ 2] 80/tcp ALLOW IN Anywhere
[ 3] Anywhere ALLOW IN MY-IP-ADDRESS*
[ 4] 3306/tcp ALLOW IN Anywhere
[ 5] 3306/tcp ALLOW IN MY-IP-ADDRESS*
[ 6] 22 (v6) ALLOW IN Anywhere (v6)
[ 7] 80/tcp (v6) ALLOW IN Anywhere (v6)
[ 8] 3306/tcp (v6) ALLOW IN Anywhere (v6)
*MY-IP-ADDRESS = 我“输出”到互联网的 IP 地址,我从以下地址接收:http://whatismyipaddress.com/
我做错了什么,为什么无法连接?
编辑: 问题是,如果我在 my.cnf 中绑定,我只能绑定一个 IP。我需要对在 vps 上运行的实时网站进行 localhost 访问,还需要从我的开发计算机(该线程的目标)进行访问。我的想法是删除 my.cnf 中的绑定以允许所有人,然后通过我的防火墙 UFW 授予对 localhost 和我的开发计算机的访问权限。
【问题讨论】:
-
您的绑定不正确。你绑定的是 localhost 地址,这意味着 mysql 不会监听来自外界的连接。
-
参考这里:preprogrammer.com/…