我正在尝试从我的Google App Maker应用连接到Google Cloud SQL数据库。不幸的是,我的IT员工尚未将Google App Maker设置为使用Google Cloud SQL作为默认值,因此我试图以与过去连接外部MySQL数据库相同的方式连接到数据库,但无法与公用IP地址。
我已经创建了一个Google Cloud SQL数据库,并且能够使用公共IP地址从MySQLWorkbench连接到它。我必须添加我的家用计算机的IP地址才能连接数据库。我不需要使用SSL。
我为Google App Maker应用程序创建了一个Google服务帐户。然后,我将此服务帐户包含在包含Cloud SQL数据库的Google项目中。我为其分配了Cloud SQL Admin和Cloud SQL Client的权限。
我正在App Maker中使用此代码尝试连接。与我在其他外部MySQL数据库中使用的代码相同。 ip地址34.xx.xx.xx是Google Cloud SQL实例的概述页面中列出的公共IP地址。
// App Settings
// Important Note: This is for demo purposes only, storing passwords in scripts
// is not recommended in production applications.
// DB Credentials (you need to provide these)
var address = '34.xx.xx.xx';
var db = 'Kenco_IoT_Template';
var dbUrl = 'jdbc:mysql://' + address + '/' + db;
var user = 'real_username';
var userPwd = 'real_password';
我收到此错误消息:
“正在执行对数据源ActivityTable的查询:(错误):无法建立数据库连接。请检查连接字符串,用户名和密码。请参阅自述文件并编辑数据库设置!”
我的猜测是问题在于设置Cloud SQL数据库以接受来自Google App Maker的连接。最好的解决方案是将Cloud SQL启用为Google App Maker的默认设置,但我希望现在可以使用一些替代方法。
任何帮助表示赞赏。
答案 0 :(得分:4)
要使其成为答案,以便其他人可以更轻松地找到它:
答案是,您需要将appscript的IP范围列入白名单。 Cloud SQL实例上的公共IP要么需要将IP地址列入白名单以进行访问,要么需要使用Cloud SQL代理。
OP还提到他们必须将使用的Jdbc方法从getConnection()切换到getCloudSqlConnection()。