通过google和stackoverflow,我发现了一些问题,询问"无法建立数据库连接。检查连接字符串,用户名和密码。"但是,我找不到任何找到潜在错误的人。
我正在尝试用数据库连接编写我的第一个google脚本;我有一个mysql和oracle jdbc getConnection,这两个都产生了这个错误。我已检查,双重和三重检查连接信息无济于事。我知道数据库是可访问的(可以通过其他客户端从几个不同的机器进入,例如linux上的php,sql开发人员在家里和工作的各种Windows PC上)。如何确定真正的错误是什么?提交给我的错误太过通用和抽象。
环境: 在Google电子表格中使用脚本(因此继承谷歌建立的任何环境)。我正在尝试使用Google API jdbc,并且不了解环境变量。
使用以下语法:
var url =" jdbc:mysql://mysql.cb-pta.com:3306 / u4lottery&#34 ;; var conn = Jdbc.getConnection(url,user,password);
同样,用户和密码已经过验证。
答案 0 :(得分:4)
只是为了别人找到这个老线程。我也无法使用Apps脚本连接到Google CloudSQL实例,并且必须从以下地址更改:
Jdbc.getCloudSqlConnection('jdbc:google:rdbms://<IP>/<DB_NAME>', '<USER>', 'PASSWORD');
到标准JDBC MySQL(有效):
Jdbc.getConnection('jdbc:mysql:// ...same as above...
另外,请注意并且不要包含&#39; /&#39;在DB_NAME后面 - 这也会导致用户/密码错误消息失败!
要检查的另一件事是你有适当的防火墙设置 - 允许从来自的源IP进行访问(如果是Apps脚本,这可能是Google的服务器 - 不是你客户端浏览器的IP)。您可能需要打开所有(0.0.0.0/0)
答案 1 :(得分:0)
有一个已知的错误导致使用主机名的jdbc连接出现问题。请尝试使用IP地址。
奇怪,但是确实......我因这个错误而失去了近2天......
答案 2 :(得分:0)
这可能与数据库位于防火墙后面有关。根据{{3}}(在这种情况下为Google Data Studio,但通常适用)说:“如果数据库位于防火墙后面,则需要打开对以下所有IP地址的访问权限。Data使用这些地址Studio可以连接并查询您的MySql数据库。”
此处的IP地址以及其他位置:Google documentation