从应用脚本访问Google Cloud SQL

7

我想知道是否有一种使用Apps Script连接到我的Google Cloud SQL DB并执行查询的方法。

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

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

4个回答

13

显然可以通过JDBC将应用脚本与Google Cloud SQL连接。

从Google Apps Script连接到Google Cloud SQL实例: Google Apps Script可以通过Jdbc服务使用JDBC与数据库建立连接。

授权: 为了连接到实例,用户必须是相关联的Google APIs Console项目的成员。可以选择指定用户名和密码以应用更细粒度的权限。有关访问控制的详细信息,请参见访问控制文档

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

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

一旦连接成功,您可以使用与访问任何MySQL数据库相同的代码。

向数据库写入:此代码将在数据库中的person表中插入一条记录。

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()
 }

2

从您的Google开发者控制台中,点击“概览”,滚动到页面中部,找到“How to connect to your cloud SQL instance”并点击链接。接下来选择Java语言,在页面上找到“Connecting from an external network”,查找您的URL。

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 Script写入,这将使生活更加轻松。


0

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


-2

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接