5

通过google和stackoverflow,我发现了一些关于“无法建立数据库连接。检查连接字符串、用户名和密码”的问题。但是,我找不到任何发现潜在错误的人。

我正在尝试使用数据库连接编写我的第一个谷歌脚本;我有一个 mysql 和 oracle jdbc getConnection,它们都产生了这个错误。我已经检查,双重和三重检查连接信息无济于事。我知道数据库是可以访问的(可以通过其他客户端从几台不同的机器上进入,比如 linux 机器上的 php,在家和工作中各种 Windows PC 上的 sql developer)。我如何确定真正的错误是什么?呈现给我的错误太笼统和抽象。

环境:在谷歌电子表格中使用脚本(因此继承谷歌建立的任何环境)。我正在尝试使用 Google API jdbc,但对环境变量一无所知。

使用以下语法:

var url = "jdbc:mysql://mysql.cb-pta.com:3306/u4lottery";
var conn = Jdbc.getConnection(url, user, password); 

再次验证用户名和密码。

4

3 回答 3

4

有一个已知错误会导致使用主机名的 jdbc 连接出现问题。尝试改用 IP 地址。

奇怪,但真实..这个错误我失去了将近 2 天....

这是错误报告的链接....

于 2012-11-13T15:25:08.183 回答
3

只是为了其他人找到这个旧线程。我在使用 Apps 脚本连接到 Google CloudSQL 实例时也遇到了麻烦,不得不从以下位置进行更改:

Jdbc.getCloudSqlConnection('jdbc:google:rdbms://<IP>/<DB_NAME>', '<USER>', 'PASSWORD');

到标准 JDBC MySQL(有效):

Jdbc.getConnection('jdbc:mysql:// ...same as above...

此外,请注意不要在 DB_NAME 后面包含“/” - 这也会导致用户/密码错误消息失败!

要检查的另一件事是您是否有适当的防火墙设置 - 允许从您来自的源 IP 进行访问(如果是 Apps 脚本,这可能是 Google 的服务器 - 而不是您的客户端浏览器的 IP)。您可能必须向所有人开放它(0.0.0.0/0)

于 2018-01-15T20:44:04.350 回答
1

这可能与您的数据库位于防火墙后面有关。根据Google 文档(在这种情况下是 Google Data Studio,但通常适用):“如果您的数据库位于防火墙后面,您将需要开放对以下所有 IP 地址的访问。Data Studio 使用这些地址进行连接并查询您的 MySql 数据库。”

此处的 IP 地址以及其他地方: https: //support.google.com/datastudio/answer/7088031

于 2019-07-07T10:08:24.820 回答