从Java独立应用程序连接到Google云sql

时间:2015-02-25 19:01:28

标签: google-api google-cloud-sql

我想编写一个java独立应用程序来连接到Google云sql - Mysql数据库。我可以找到app客户端的样本,但不能找到独立的java应用程序。

当我尝试这样做时,我收到以下错误。

的Class.forName(#34&; com.mysql.jdbc.Driver&#34); Connection con = DriverManager.getConnection(" jdbc:google:mysql:// IP:Instance_name?user = user_name"); Statement st = con.createStatement(); ResultSet rs = con.createStatement()。executeQuery(" SELECT 1 + 1");

失败并显示错误:

没有为jdbc找到合适的驱动程序:google:mysql:..

我看到他们要求启用mysql连接器的一些答案。但是app引擎项目就是这种情况。如何使用独立应用程序执行此操作?

3 个答案:

答案 0 :(得分:1)

您可以使用标准的mysql连接器连接到云sql实例:例如:

的DriverManager.getConnection(" JDBC:MySQL的:// IP:实例名用户= USER_NAME&#34);

您可以查看https://cloud.google.com/sql/docs/external了解详情

答案 1 :(得分:0)

在运行代码之前在<>中进行编辑

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

/**
* A sample app that connects to a Cloud SQL instance and lists all available tables 
in a database.
*/

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

String instanceConnectionName = <Your instanceConnectionName>;
String databaseName = <Database name from which u want to list tables>;


String IP_of_instance = <IP address of the instance>;
String username = <mysql username>;
String password = <mysql password>;

String jdbcUrl = String.format(
    "jdbc:mysql://%s/%s?cloudSqlInstance=%s"
        + "&socketFactory=com.google.cloud.sql.mysql.SocketFactory&useSSL=false",
IP_of_instance,
    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));
  }
}catch(Exception e){
  e.printStackTrace();
}
}
}

答案 2 :(得分:0)

我们可以简单地使用标准的 mysql java 连接器连接到云 sql 形成一个独立的 java 应用程序。

按照以下代码片段进行操作。这应该可以帮助您无缝连接到数据库。

class.forName(com.mysql.jdbc.Driver);
String connectionUrl = "jdbc:mysql//<public-ip>/<database>?useSSL=false";
Connection conn = DriverManager.getConnection(connectionUrl, user, password);

在您执行此操作之前,请确保您从 Internet 获取您的 ip 地址并在路径下添加相同的地址:google cloud -> sql -> sqlinstance -> 连接 -> 网络 -> 授权网络。

Click here to see the google cloud mysql configuration