我想知道是否有办法使用 Apps 脚本连接到我的 Google Cloud SQL DB 来执行查询。
我已经阅读了很多帖子,似乎访问 DB Cloud SQL 的唯一方法是使用 App Engine。
有人知道解决方案吗?谢谢
我想知道是否有办法使用 Apps 脚本连接到我的 Google Cloud SQL DB 来执行查询。
我已经阅读了很多帖子,似乎访问 DB Cloud SQL 的唯一方法是使用 App Engine。
有人知道解决方案吗?谢谢
是的,显然可以通过 JDBC 将应用程序脚本与 Google Cloud SQL 连接起来。
从 Google Apps 脚本连接到 Google Cloud SQL 实例: Google Apps 脚本能够通过 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 控制台中,单击概览,向下到页面中间单击,如何连接到您的云 SQL 实例,然后单击链接。接下来选择 Java 作为语言,直到找到从外部网络连接,找到您的 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 脚本写入数据,这让生活变得更加轻松。
我认为连接到 Google Cloud Sql DB 的唯一方法是通过 AppEngine。