我想知道是否有一种使用Apps Script连接到我的Google Cloud SQL DB并执行查询的方法。
我已经阅读了许多帖子,似乎唯一访问DB Cloud SQL的方式是使用App Engine。
有人知道解决方案吗? 谢谢
我想知道是否有一种使用Apps Script连接到我的Google Cloud SQL DB并执行查询的方法。
我已经阅读了许多帖子,似乎唯一访问DB Cloud SQL的方式是使用App Engine。
有人知道解决方案吗? 谢谢
显然可以通过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()
}
从您的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);
需要记住的两件事
首先允许App脚本网络ID
提前创建数据库以便从Apps Script写入,这将使生活更加轻松。
我认为连接到Google Cloud Sql数据库的唯一方法是通过AppEngine。