从Apps脚本访问Google Cloud SQL

时间:2012-09-12 15:22:10

标签: google-apps-script

我想知道现在是否有使用应用脚本连接到我的Google Cloud SQL DB以插入/检索记录或执行查询的方法。我阅读了很多帖子,看来访问DB Cloud SQL的唯一方法是使用appengine。

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

4 个答案:

答案 0 :(得分:11)

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

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

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

访问Google Cloud SQL数据库 我们可以使用特殊方法getCloudSqlConnection连接到Apps脚本中的这些数据库。此方法与 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()
 }

答案 1 :(得分:2)

在Google Developers控制台中,点击概述,然后转到页面中间 单击,如何连接到您的云SQL实例并单击该链接。 接下来选择语言的Java,直到找到从外部网络连接,找到您的URL。

它应该是这样的:

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

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

复制网址?用户= root&#34 ;;

粘贴到>> 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写入,这样可以让生活更轻松。

答案 2 :(得分:0)

现在没有任何解决方案可以从GAS连接到Google Cloud SQL DB,并且不清楚它何时推出。 Here是问题跟踪器上的问题,here是关于Google Cloud SQL Group上此问题的讨论。

答案 3 :(得分:-1)

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