使用Google Apps脚本连接到Cloud SQL时出错

时间:2018-01-04 00:21:48

标签: sql google-cloud-sql

我尝试使用以下代码在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 个答案:

答案 0 :(得分:2)

我认为这里可能有两件不同的事情。

首先,最容易修复,而不是rdbms,包括实际的RDBMS类型(大概是mysql)。

其次,您似乎正在使用特定于Cloud SQL的Jdbc.getCloudSqlConnection(),其中包含一个似乎是Internet的URL。你可以想象通过切换到通用Jdbc.getConnection()来实现这一点,但我强烈建议坚持getCloudSqlConnection(),因为你也可以关闭非SSL连接(!)。

使用Jdbc.getCloudSqlConnection()时,请使用Cloud SQL连接名称,而不是使用URL中的实例IP。

为此,您可以转到Google Cloud Platform项目的SQL视图,然后在"连接到此实例",您应该看到"实例连接名称"。

如果您确实使用了mysql,那么" Instance连接名称"是" mygcpproject:us-central1:mydbinstance",你最终得到这样的东西:

function myFunction()
{
    var conn = Jdbc.getCloudSqlConnection("jdbc:google:mysql://mygcpproject:us-central1:mydbinstance/DB_name", "userName", "password");
}

祝你好运!希望文档对于Google Apps脚本JDBC驱动程序更好一点,一旦你克服了这些怪癖,它就会非常方便。