从 Java 独立应用程序连接到 Google 云 sql
Connecting to Google cloud sql from Java stand alone application
我想编写一个 java 独立应用程序来连接到 google cloud sql
- MySql
数据库。我可以为应用程序客户端找到样本,但不能为独立 java 应用程序找到样本。
当我尝试这样做时,出现以下错误。
Class.forName("com.mysql.jdbc.Driver");
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 连接器的答案。但应用引擎项目就是这种情况。我如何使用独立应用程序来做到这一点?
您可以只使用标准 mysql
连接器连接到云 sql
实例:例如:
DriverManager.getConnection("jdbc:mysql://IP:Instance_name?user=user_name");
您可以查看此 link https://cloud.google.com/sql/docs/external 了解更多信息。
在 运行 您的代码之前在 <> 中编辑
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();
}
}
}
我们可以简单地使用标准 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);
在执行此操作之前,请确保从互联网上获取您的 IP 地址并将其添加到路径下:google cloud -> sql -> sqlinstance -> connections - > 网络 -> 授权网络。
Click here to see the google cloud mysql configuration
我想编写一个 java 独立应用程序来连接到 google cloud sql
- MySql
数据库。我可以为应用程序客户端找到样本,但不能为独立 java 应用程序找到样本。
当我尝试这样做时,出现以下错误。
Class.forName("com.mysql.jdbc.Driver");
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 连接器的答案。但应用引擎项目就是这种情况。我如何使用独立应用程序来做到这一点?
您可以只使用标准 mysql
连接器连接到云 sql
实例:例如:
DriverManager.getConnection("jdbc:mysql://IP:Instance_name?user=user_name");
您可以查看此 link https://cloud.google.com/sql/docs/external 了解更多信息。
在 运行 您的代码之前在 <> 中编辑
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();
}
}
}
我们可以简单地使用标准 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);
在执行此操作之前,请确保从互联网上获取您的 IP 地址并将其添加到路径下:google cloud -> sql -> sqlinstance -> connections - > 网络 -> 授权网络。
Click here to see the google cloud mysql configuration