Java Can';t连接到托管在google实例中的MYSQL服务器

Java Can';t连接到托管在google实例中的MYSQL服务器,java,mysql,jdbc,google-cloud-platform,google-compute-engine,Java,Mysql,Jdbc,Google Cloud Platform,Google Compute Engine,我得到了一个谷歌云平台-计算引擎实例,我在上面安装了MySQL服务器 现在我无法从安装了sql的虚拟机中获得任何生命信号, 对于exsample: package com.company; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class Main { public static void connection(){ try {

我得到了一个谷歌云平台-计算引擎实例,我在上面安装了MySQL服务器

现在我无法从安装了sql的虚拟机中获得任何生命信号, 对于exsample:

package com.company;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class Main {

public static void connection(){
    try {
        Class.forName("com.mysql.jdbc.Driver");
        System.out.println("in conncection");
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }
}

public static void connectToMySQL(){
    connection();
    String host = "jdbc:mysql://hotsIP:3306/DBname";
    String user = "user";
    String pass = "password";
    try {
        Connection connection = DriverManager.getConnection(host,user,pass);
        System.out.println("???");
    } catch (SQLException e) {
        e.printStackTrace();
    }
}

public static void main(String[] args) {
    connectToMySQL();
}
}
这需要几秒钟,就像他试图连接和验证一样

in conncection
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
我所做的工作是:

  • 在my.conf中:
    绑定地址=0.0.0.0
    跳过外部锁定注释
  • 重新启动服务器
  • 查看服务器是否处于活动状态
  • 查看服务器是否正在侦听端口
  • 看它是不是TCP

我不知道该怎么办。

您必须对
my.cnf
文件进行以下更改

my.cnf

bind-address = www.000webhost.com (OR)
bind-address = xx.xx.xx.xx (IP Address)
更改此设置后,您需要重新启动MySQL服务

另外值得注意的是,MAMP/MAMP Pro默认设置
MAMP\u skip-networking\u MAMP
。您必须在
my.cnf

bind-address = www.000webhost.com (OR)
bind-address = xx.xx.xx.xx (IP Address)

如果您没有任何用户登录问题,您应该能够从Java代码连接到MySQL数据库。

在我的情况下,根本原因是:防火墙。我正试图在工作时运行该应用程序

有趣的是,本地运行的应用程序引擎标准实际上生成了一个无错误的登录,这让我放弃了防火墙的假设


解决方案:我发现把笔记本从家里带到公司的网络上并没有用。当我在手机中连接到共享连接时,它工作得非常好。

put
Class.forName(“com.mysql.jdbc.Driver”)
before
Connection Connection=DriverManager.getConnection(主机、用户、通行证)不要使用单独的方法加载驱动程序
连接()另一个选项,从2007年开始尝试不加载驱动程序您不需要加载驱动程序,另一件事您的jdbc连接版本是旧的,尝试将其升级到新版本,并检查不同版本的注释,但相同的例外您得到了什么异常?intelliJ说“原因:java.net.ConnectException:连接超时:connect”您是否更改了驱动程序或更改了什么?