以前工作的 Google 表格应用程序脚本现在为 MySQL 数据库抛出 "Failed to establish a database connection" 错误
Previously working Google Sheets App Script is now throwing the "Failed to establish a database connection" error for MySQL DB
在过去的 4 个月里,我一直在成功使用 Google Sheets App Script,它连接到远程托管在 VPS 上的 MySQL 5.7 数据库(此脚本连接到我的DB 今天早些时候也成功了)。今天下午突然我的请求返回“无法建立数据库连接。检查连接字符串、用户名和密码。”使用 MySQL Workbench.
,数据库连接在我的计算机上仍然可以远程工作
其他详细信息:
- 凭据没有改变(我通过新的连接测试确认)
- 我禁用了 Chrome V8 运行时,因为它根本无法正常工作
- 我仔细检查了 Google 服务器 IP 以列入白名单,并注意到有 1 个服务器是新的或我第一次错过了,无论哪种方式,所有提供的 IP 当前都已列入白名单
- 我正在使用以下语法进行连接:var conn = Jdbc.getConnection(url, user, pwd);
我看到一个月前的一些评论,有些人能够成功添加这些参数:var conn = Jdbc.getConnection(url+'?verifyServerCertificate=false&useSSL=true&requireSSL=true' , 用户, 密码);
但是我只是得到这个:错误参数无效:_serverSslCertificate
感谢任何进一步成功连接的步骤或提示,谢谢!
显然它又能正常工作了....一定是服务故障。奇怪的是,在我决定尝试 var conn = Jdbc.getConnection(url+'?useSSL=false', user, pwd);
之后它又开始工作了,因为我看到其他一些评论提到了这一点。似乎是一个糟糕的解决方案,但在我这样做之后它又开始工作了,但即使在我恢复到 var conn = Jdbc.getConnection(url, user, pwd);
之后它仍然继续工作
后续问题,有什么好的替代方案可以替代 Google Sheets with App Script like usage 吗?我真的厌倦了 Google 糟糕的支持 - 宁愿为产品付费,也不愿在糟糕的支持下听到“一分钱一分货”。
编辑:在昨天它自己再次开始工作之后,问题又回来了。我今天已经确认切换到 var conn = Jdbc.getConnection(url+'?useSSL=false', user, pwd);
已经解决了我的连接问题,但这根本不是一个理想的解决方案。 Google 一定是 Apps 脚本端的一些网络设置出现问题,这导致了问题。
Austin,你让我很开心...同样,昨天我的 MySQL 连接突然停止工作。花了几个小时试图修复它。 '?useSSL=false' 很有魅力。
谢谢谢谢谢谢
我找到了解决方案。
似乎对 Google 的更改现在要求您将 SSL 明确设置为 false。 (以前如果你让它省略它会默认关闭)
?useSSL=false
因此您需要将连接字符串更新为类似这个简单示例的内容。
function myFunction() {
var conn = Jdbc.getConnection("jdbc:mysql://35.214.129.151:3306/dbiyrogncria1r?useSSL=false", "uyxfedtljijfy8", "rnqgnyrs2dthb");
Logger.log(conn);
conn.close();
}
在过去的 4 个月里,我一直在成功使用 Google Sheets App Script,它连接到远程托管在 VPS 上的 MySQL 5.7 数据库(此脚本连接到我的DB 今天早些时候也成功了)。今天下午突然我的请求返回“无法建立数据库连接。检查连接字符串、用户名和密码。”使用 MySQL Workbench.
,数据库连接在我的计算机上仍然可以远程工作其他详细信息:
- 凭据没有改变(我通过新的连接测试确认)
- 我禁用了 Chrome V8 运行时,因为它根本无法正常工作
- 我仔细检查了 Google 服务器 IP 以列入白名单,并注意到有 1 个服务器是新的或我第一次错过了,无论哪种方式,所有提供的 IP 当前都已列入白名单
- 我正在使用以下语法进行连接:var conn = Jdbc.getConnection(url, user, pwd);
我看到一个月前的一些评论,有些人能够成功添加这些参数:var conn = Jdbc.getConnection(url+'?verifyServerCertificate=false&useSSL=true&requireSSL=true' , 用户, 密码); 但是我只是得到这个:错误参数无效:_serverSslCertificate
感谢任何进一步成功连接的步骤或提示,谢谢!
显然它又能正常工作了....一定是服务故障。奇怪的是,在我决定尝试 var conn = Jdbc.getConnection(url+'?useSSL=false', user, pwd);
之后它又开始工作了,因为我看到其他一些评论提到了这一点。似乎是一个糟糕的解决方案,但在我这样做之后它又开始工作了,但即使在我恢复到 var conn = Jdbc.getConnection(url, user, pwd);
后续问题,有什么好的替代方案可以替代 Google Sheets with App Script like usage 吗?我真的厌倦了 Google 糟糕的支持 - 宁愿为产品付费,也不愿在糟糕的支持下听到“一分钱一分货”。
编辑:在昨天它自己再次开始工作之后,问题又回来了。我今天已经确认切换到 var conn = Jdbc.getConnection(url+'?useSSL=false', user, pwd);
已经解决了我的连接问题,但这根本不是一个理想的解决方案。 Google 一定是 Apps 脚本端的一些网络设置出现问题,这导致了问题。
Austin,你让我很开心...同样,昨天我的 MySQL 连接突然停止工作。花了几个小时试图修复它。 '?useSSL=false' 很有魅力。
谢谢谢谢谢谢
我找到了解决方案。
似乎对 Google 的更改现在要求您将 SSL 明确设置为 false。 (以前如果你让它省略它会默认关闭)
?useSSL=false
因此您需要将连接字符串更新为类似这个简单示例的内容。
function myFunction() {
var conn = Jdbc.getConnection("jdbc:mysql://35.214.129.151:3306/dbiyrogncria1r?useSSL=false", "uyxfedtljijfy8", "rnqgnyrs2dthb");
Logger.log(conn);
conn.close();
}