我尝试使用以下代码在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上的实例。
我不确定是否有遗漏的东西。
答案 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驱动程序更好一点,一旦你克服了这些怪癖,它就会非常方便。