Java 为了将mysql连接到google计算引擎,应该更新哪些防火墙设置

Java 为了将mysql连接到google计算引擎,应该更新哪些防火墙设置,java,mysql,google-compute-engine,google-cloud-sql,Java,Mysql,Google Compute Engine,Google Cloud Sql,我已经创建了一个计算引擎实例,并安装了MySQL,还授权它对sql实例进行云计算。需要更改某些防火墙设置以打开端口3306使用此命令: $ gcloud compute firewall-rules create FIREWALL_RULE --allow tcp:3306 但仍然无法连接到数据库。我得到以下错误: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure 通过运行

我已经创建了一个计算引擎实例,并安装了MySQL,还授权它对sql实例进行云计算。需要更改某些防火墙设置以打开端口3306使用此命令:

$ gcloud compute firewall-rules create FIREWALL_RULE --allow tcp:3306
但仍然无法连接到数据库。我得到以下错误:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

通过运行以下命令关闭iptables进行测试:

    sudo service iptables stop
如果可行,请通过以下方式重新启动iptables并允许3306端口(mysql端口):

**以上命令适用于linux操作系统


发出此命令即打开默认网络上的3306端口。您的实例是在默认网络上运行还是在其他网络上运行?另一件需要检查的事情是实例上的iptables。尝试禁用要测试的iptables。在授权网络中,您还需要授权实例的公共IP,而不是私有IP。检查Mysql是否正在侦听所有地址,而不仅仅是本地地址。在/etc/mysql/my.cnf(适用于Debian OS)检查中:bind address=0.0.0.0我尝试使用bind address=0.0.0和bind address=localhost,它对我也不起作用,错误为2002(HY000):无法通过套接字'/var/run/mysqld/mysqld.sock'(2)连接到本地mysql服务器在ssl上编写此命令时:mysql--host=localhost--user=--password仍在获取com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Communications link Failure我是否也需要更改bindaddress?提到127.0.0.1是将其更改为:
bind address=0.0.0.0
,这样它就可以在所有IP上侦听,还可以通过运行来检查mysql是否正在接受连接:
telnet localhost 3306
我是否需要在/etc/my.cnf中覆盖,我正在使用centos,并且没有运行telnet commandERROR 2002(HY000)的权限:在ssl上写入此命令时,无法通过套接字“/var/run/mysqld/mysqld.sock”(2)连接到本地MySQL服务器:MySQL--host=localhost--user=--password
    sudo service iptables restart
    sudo iptables -A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
    sudo service iptables save