Как я мог соединиться с экземпляром облака Google без приложения двигателя

голоса
0

Я пытаюсь подключиться к экземпляру облака Google, но havong некоторые проблемы с ним. Я бы оценить помощь, чтобы найти самый простой способ сделать это.

Также I'm новые для работы с базами данных и Java.

Вот мой код:

package com.google.cloud.sql.mysql;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
* A sample app that connects to a Cloud SQL instance and lists all available 
tables in a database.
 */
public class example{
  public static void main(String[] args) throws IOException, SQLException {
// TODO: fill this in
// The instance connection name can be obtained from the instance overview page in Cloud Console
// or by running gcloud sql instances describe <instance> | grep connectionName.
String instanceConnectionName = eco-codex-216813:asia-southeast1:instance1;

// TODO: fill this in
// The database from which to list tables.
String databaseName = mysql;

String username = root;

// TODO: fill this in
// This is the password that was set via the Cloud Console or empty if never set
// (not recommended).
String password = 1412;


//[START doc-example]
String jdbcUrl = String.format(
    jdbc:mysql://google/%s?cloudSqlInstance=%s
        + &socketFactory=com.google.cloud.sql.mysql.SocketFactory&useSSL=false,
    databaseName,
    instanceConnectionName);

Connection connection = DriverManager.getConnection(jdbcUrl, username, password);


try (Statement statement = connection.createStatement()) {
  ResultSet resultSet = statement.executeQuery(SHOW TABLES);
  while (resultSet.next()) {
    System.out.println(resultSet.getString(1));
    }
   }
  }
}

но я получил эту ошибку:

<i>
run:
Exception in thread main java.sql.SQLNonTransientConnectionException: Cannot connect to MySQL server on google:3,306.

Make sure that there is a MySQL server running on the machine/port you are trying to connect to and that the machine this software is running on is able to connect to this host/port (i.e. not firewalled). Also make sure that the server has not been started with the --skip-networking flag.


    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110)
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63)
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73)
    at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:470)
    at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:240)
    at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:207)
    at java.sql.DriverManager.getConnection(DriverManager.java:664)
    at java.sql.DriverManager.getConnection(DriverManager.java:247)
    at com.google.cloud.sql.mysql.example.main(example.java:45)
Caused by: java.lang.NullPointerException
    at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:976)
    at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:822)
    at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:456)
    ... 5 more
C:\Users\Zack\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 1 second)</i>

им с помощью среды IDE NetBeans и используя MySQL Connector Java 8.

Задан 20/09/2018 в 10:10
источник пользователем
На других языках...                            


1 ответов

голоса
0

Добро пожаловать в Stackoverflow и Google Cloud! Я предполагаю, что вы имеете в виду Google Cloud SQL Instance с двигателем MySQL с "Google облака экземпляра". Вам нужно открыть сетевой доступ на уровне от машины, выполняющей программу Java в Cloud SQL Instance. В Cloud SQL поведение по умолчанию, чтобы блокировать этот доступ извне. Вы можете редактировать экземпляр в консоли облака и в «Авторизовать сеть» часть добавить свой IP-адрес или диапазон IP, чтобы обеспечить соединение с.

Если нет других межсетевых экранов между вашей машиной Java и Cloud SQL, вы должны быть в состоянии соединиться после этого изменения. Надеюсь, поможет!

Вы можете найти более подробную информацию о Cloud подключения SQL с этой страницы: https://cloud.google.com/sql/docs/mysql/connect-external-app#appaccessIP . Вы можете также найти другие варианты для подключения к БД, например , с помощью прокси - сервера.

Ответил 20/09/2018 в 11:12
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more