“无法创建与数据库服务器的连接”netbeans google cloud sql错误

时间:2017-08-05 14:01:52

标签: java mysql sql-server google-app-engine netbeans

我正在尝试使用java httpServlet和netbeans创建我的第一个API,它将基于其examplesdocumentations连接到谷歌云上的数据库。我没有创建数据库,但我获得了必要的凭据和vars来创建连接。所以我从github下载了这个项目,当我尝试从netbeans打开它时,有一些关于依赖的问题......所以我解决了它们,我用他们的值替换了凭证并运行了项目;不幸的是抛出了一个错误:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server.我做了一些搜索,但没有得到任何结果......这个代码可能是错误吗?数据库安全性的错误,如果它在云上不可见?任何帮助都非常感谢。

public class ListTables {
  public static void main(String[] args) throws IOException, SQLException {

    String instanceConnectionName = "<foo:foo:bar>";

    String databaseName = "myDatabaseName ";

    String username = "myUsername ";

    String password = "<myPass>";

    if (instanceConnectionName.equals("<insert_connection_name>")) {
      System.err.println("Please update the sample to specify the instance connection name.");
      System.exit(1);
    }

    if (password.equals("<insert_password>")) {
      System.err.println("Please update the sample to specify the mysql password.");
      System.exit(1);
    }

    String jdbcUrl = String.format(
        "jdbc:mysql://google/%s?cloudSqlInstance=%s&"
            + "socketFactory=com.google.cloud.sql.mysql.SocketFactory",
        databaseName,
        instanceConnectionName);
 try{
     Connection connection = DriverManager.getConnection(jdbcUrl, username, password);

    /* try (Statement statement = connection.createStatement()) {
      ResultSet resultSet = statement.executeQuery("select * from wf_accounts;");
      while (resultSet.next()) {
        System.out.println(resultSet.getString(1));
      }
    }*/


 }catch(Exception ex){
    System.out.println("Error: " + ex.toString());
 }

更新

当我这样做时抛出了同样的错误:

String jdbcUrl = String.format( 
   "jdbc:mysql://google/%s?cloudSqlInstance=%s&" 
   + "socketFactory=com.google.cloud.sql.mysql.SocketFactory", 
"", 
"");

任何提示?

1 个答案:

答案 0 :(得分:0)

首先你必须检查mysql服务器是否正在运行。如果你是Windows用户,你可以简单地

Go to Task Manager
Go to Services
then search for your Mysql server(eg:for my case its MYSQL56)
then you will see under the status column it says its not running
by right clicking and select start

如果它已经运行,那么你必须像在mysql文档中一样,

您应该考虑在应用程序中使用之前使连接有效期到期和/或测试,增加服务器配置的客户端超时值,或者使用Connector / J连接属性

  

autoReconnect的= TRUE

避免这个问题