我正在尝试使用以下代码在Google Apps脚本中创建与我的Cloud SQL数据库的基本连接:
function myFunction()
{
var conn = Jdbc.getCloudSqlConnection("jdbc:google:rdbms://instance_IP/DB_name");
}
我收到错误:
Failed to establish a database connection. Check connection string, username and password
我知道可以选择在命令中包含用户名和密码参数 . 此链接中的信息https://developers.google.com/apps-script/reference/jdbc/jdbc#getCloudSqlConnection(String,String,String) .
function myFunction()
{
var conn = Jdbc.getCloudSqlConnection("jdbc:google:rdbms://instance_IP/DB_name", "userName", "password");
}
当我用我的用户名和密码尝试这个方法时,我得到了与上面相同的错误 . 我可以使用用户名和密码访问Google Cloud Platform上的实例 .
我不确定是否有遗漏的东西 .
1 回答
我想这里可能有两件不同的事情 .
第一个也是最容易修复的,而不是
rdbms
,包括实际的RDBMS类型(大概是mysql
) .其次,您似乎正在使用特定于Cloud SQL的
Jdbc.getCloudSqlConnection()
,其中包含似乎是Internet的URL . 你可以想象通过切换到泛型Jdbc.getConnection()
来实现这一点,但我强烈建议坚持使用getCloudSqlConnection()
,因为你也可以关闭非SSL连接(!) .使用
Jdbc.getCloudSqlConnection()
时,请使用Cloud SQL Connection名称,而不是使用URL中的实例IP .为此,您可以转到Google Cloud Platform项目的SQL视图,在“连接到此实例”下,您会看到“实例连接名称” .
如果您确实使用了mysql,并且“实例连接名称”是“mygcpproject:us-central1:mydbinstance”,那么您最终会得到以下内容:
祝你好运!希望文档对于Google Apps脚本JDBC驱动程序更好一点,一旦你克服了这些怪癖,它就会非常方便 .