我按照https://developers.google.com/apps-script/jdbc中显示的Google Apps脚本JDBC示例,但未成功连接到亚马逊托管的MySQL数据库。我的连接字符串看起来像这样(擦洗):
var conn = Jdbc.getConnection("jdbc:mysql://myAmazonhost:3306/", "myUser", "myPass");
我可以使用MySQL Workbench和Navicat从我的开发系统远程连接到Amazon MySQL数据库,并在Google脚本中检查/验证了主机名,用户名和密码。
我将Accessing Local Databases下列出的Google服务器添加到亚马逊安全组但没有运气。我一直收到错误:
无法建立数据库连接。检查连接字符串, 用户名和密码。
我可能错过了一些简单的事情。还有其他人从Google脚本连接到亚马逊MySQL数据库吗?我肯定会感激任何建议。感谢。
(编辑...)
抱歉,当我清理上面的示例时,我无意中删除了数据库名称。 DB名称在代码中指定。
var conn = Jdbc.getConnection("jdbc:mysql://myAmazonhost:3306/myDB", "myUser", "myPass");
我发布此问题12个小时后,脚本开始工作 - 没有数据库连接错误。我构建了一个报告,使用从Amazon MySQL数据库中检索的信息创建了一个电子表格。 (很酷,看到所有这些在云端工作。)
但是......我没有对JDBC连接字符串进行任何更改。并且没有对亚马逊方面的安全组配置进行任何更改。它刚刚开始工作。
今天早上,我开始编写脚本。我没有走得太远 - 弹出了一个丑陋的红色数据库连接错误消息。没有更改代码。它刚刚停止工作。我验证了MySQL数据库已启动并可从我的桌面管理程序访问。没问题。
是否有其他人遇到从Google脚本到外部数据库的不稳定连接?我希望这只是一个孤立的故障。
答案 0 :(得分:1)
原来这个问题与数据库引擎版本有关。我使用引擎版本5.5.25a创建了一个新实例并且连接正常。我回到原始数据库并将其从5.5.8修改为5.5.25a,并且它也可以正常工作。不确定Google Apps脚本发生了什么,但将引擎版本更改为5.5.25a可以解决问题。
答案 1 :(得分:0)
您必须指定要连接的数据库。试试
var conn = Jdbc.getConnection("jdbc:mysql://myAmazonhost:3306/DB_NAME", "myUser", "myPass");