首页 文章

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

提问于
浏览
1

我正在尝试使用以下代码在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 回答

  • 2

    我想这里可能有两件不同的事情 .

    第一个也是最容易修复的,而不是 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”,那么您最终会得到以下内容:

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

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

    • 蒂姆

相关问题