我想知道现在是否有使用应用脚本连接到我的Google Cloud SQL DB以插入/检索记录或执行查询的方法。我阅读了很多帖子,看来访问DB Cloud SQL的唯一方法是使用appengine。
有人知道解决方案吗? 谢谢
答案 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。