Google App脚本不会与远程服务器上的MySQL建立Jdbc连接

问题描述 投票:1回答:1

我不熟悉Google脚本,并试图建立与MySQL(5.5.65-MariaDB)数据库的连接,该数据库托管在运行CentOS的外部(非Google)服务器上。

我在这里遵循指南:https://developers.google.com/apps-script/guides/jdbc#other_databases

在我的脚本中,我使用了以下功能:

// export_sheet_data.gs
function writeOneRecord() {
    var conn = Jdbc.getConnection('jdbc:mysql://HOST_NAME.com:3306/DB_NAME', 'DB_USER', 'DB_PASSWORD');

    var stmt = conn.prepareStatement('INSERT INTO entries '
    + '(guestName, content) values (?, ?)');
    stmt.setString('andy', 'First Guest');
    stmt.setString('bob', 'Hello, world');
    stmt.execute();
}

[显然,HOST_NAMEDB_NAMEDB_USERDB_PASSWORD是对应于适当值的字符串(从字面上输入,不是变量):我的外部服务器的主机名,数据库名称,数据库用户名和数据库密码。

[当我在脚本控制台中执行此命令(运行>运行功能> writeOneRecord())时,它说]

运行函数writeOneRecord()

大约10秒钟。

然后出现错误

异常:无法建立数据库连接。检查连接字符串,用户名和密码。

如果我单击“详细信息”,则不会对此进行详细说明。它说

异常:无法建立数据库连接。检查连接字符串,用户名和密码。 (第54行,文件“ export_sheet_data”)

我已经完成以下工作:

  • 将链接网页上的IP地址添加到我的服务器防火墙中。重新加载防火墙以确保它正在使用此配置。
  • 检查服务器上是否存在数据库DB_NAME
  • 已检查主机名HOST_NAME与我的服务器匹配。 也尝试使用外部IP地址
  • 已检查MySQL正在使用端口3306
  • 检查用户名/密码(DB_USERDB_PASSWORD)正确。

与此有关的服务器上的防火墙日志中没有任何显示。

我已检查我是否正确使用了Jdbc.getConnection

我还能如何调试呢? Google脚本控制台似乎没有什么可以帮助您的。

mysql google-apps-script jdbc
1个回答
0
投票

我在访问网站上的MySql数据库时遇到了一些困难,发现这种方法对我有用。

Jdbc.getConnection

似乎经常起作用的地址是托管帐户的IP地址。

© www.soinside.com 2019 - 2024. All rights reserved.