6

我想知道是否有办法使用 Apps 脚本连接到我的 Google Cloud SQL DB 来执行查询。

我已经阅读了很多帖子,似乎访问 DB Cloud SQL 的唯一方法是使用 App Engine。

有人知道解决方案吗?谢谢

4

4 回答 4

12

是的,显然可以通过 JDBC 将应用程序脚本与 Google Cloud SQL 连接起来。

从 Google Apps 脚本连接到 Google Cloud SQL 实例: Google Apps 脚本能够通过 JDBC 与 Jdbc 服务建立连接。

授权: 为了连接到实例,用户必须是相关 Google API 控制台项目的成员。或者,可以指定用户名和密码以应用更细粒度的权限。要了解有关访问控制的更多信息,请参阅访问控制文档

访问 Google Cloud SQL 数据库: 我们可以在 Apps Script 中使用特殊方法 getCloudSqlConnection 连接到这些数据库。此方法的工作方式与getConnection相同,但仅接受 Google Cloud SQL 连接字符串。

var conn = Jdbc.getCloudSqlConnection("jdbc:google:rdbms://instance_name/database_name");

连接后,您可以使用与任何 MySQL 数据库相同的代码。

写入数据库: 此代码将在数据库的人员表中插入一条记录

function insert() {
  var fname="First Name"
  var lname="Last Name"
  var conn = Jdbc.getCloudSqlConnection("jdbc:google:rdbms://instance_name/database_name");
  var stmt = conn.createStatement()
  var query="insert into person(FNAME,LNAME) values('"+fname+"','"+lname+"')"
  stmt.execute(query)
  stmt.close()
  conn.close()
 }

从数据库中读取: 此代码将从数据库中读取。

function read() {
  var conn = Jdbc.getCloudSqlConnection("jdbc:google:rdbms://instance_name/database_name");
  var stmt = conn.createStatement()
  var query="select FNAME, LNAME from person"
  var rs= stmt.executeQuery(query)
  while(rs.next()){
    Logger.log("First Name : "+rs.getString(1)+" , "+"Last Name : "+rs.getString(2))
  }
  rs.close()
  stmt.close()
  conn.close()
 }
于 2013-07-23T05:09:40.130 回答
2

在您的 Google Developers 控制台中,单击概览,向下到页面中间单击,如何连接到您的云 SQL 实例,然后单击链接。接下来选择 Java 作为语言,直到找到从外部网络连接,找到您的 url。

它应该是这样的:

url = "jdbc:mysql://your_address?user=root"; 

如果启用 IPv4(000.000.000.00 格式的数字)

复制 url 省略 ?user=root";

粘贴到var conn = Jdbc.getConnection("jdbc:mysql://your_address/

添加/db_name和完成的代码行应该看起来像这样。

var conn = Jdbc.getConnection("jdbc:mysql://your_address/db_name”, user, userPwd);

要记住的两件事

  1. 允许 App 脚本网络 ID 的第一个

  2. 提前创建数据库以从 Apps 脚本写入数据,这让生活变得更加轻松。

于 2015-10-10T05:29:13.530 回答
0

现在还没有任何解决方案可以从 GAS 连接到 Google Cloud SQL DB,而且尚不清楚何时引入。是问题跟踪器上的一个问题,这里是 Google Cloud SQL 组上有关此问题的讨论。

于 2012-09-12T15:52:20.240 回答
-2

我认为连接到 Google Cloud Sql DB 的唯一方法是通过 AppEngine。

于 2012-09-12T15:30:35.567 回答