我想知道是否有一种方法可以使用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);
需要记住的两件事
允许应用程序脚本网络ID的第一个
提前创建数据库以从应用程序脚本中写入,这会让生活变得更轻松。
现在没有任何解决方案可以从GAS连接到Google Cloud SQL DB,也不清楚何时推出。这是关于问题跟踪器的一个问题,这里是关于谷歌云SQL组的一个讨论。
我认为连接到Google Cloud Sql DB的唯一方法是通过AppEngine。