从应用程序脚本访问Google Cloud SQL



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

我读过很多文章,访问DB Cloud SQL的唯一方法似乎是使用应用程序引擎。

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

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

从Google Apps连接到Google Cloud SQL实例脚本:GoogleAppsScript能够通过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()
 }

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

它应该是这样的:

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

如果启用IPv4(000.0000.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. 允许应用程序脚本网络ID的第一个

  2. 提前创建数据库以从应用程序脚本中写入,这会让生活变得更轻松。

现在没有任何解决方案可以从GAS连接到Google Cloud SQL DB,也不清楚何时推出。这是关于问题跟踪器的一个问题,这里是关于谷歌云SQL组的一个讨论。

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

相关内容

  • 没有找到相关文章

最新更新