使用 Google App 脚本将 AWS RDS 连接到 Google Sheets 时出错

Tan*_*edi 1 jdbc database-connectivity amazon-rds google-apps-script

我正在尝试将 AWS RDS 连接到 Google Sheets,但我得到的只是

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

我已经尝试了跟踪器中找到的方法,即“使用端点主机地址的IP”,但仍然出现相同的错误,

我有:

  1. 设置 [RDS 设置 - 公共可访问性 - 开启] 并验证端点和访问详细信息适用于所有其他查看器(Navicat、Adminer 等)

  2. 在“RDS VPC-安全组”入站和出站中添加了所有需要的 google IP 白名单(请参阅: https: //developers.google.com/apps-script/guides/jdbc)。

这是我正在使用的代码:

var connectionName = 'x.x.x.x:3306'
var user = 'admin';
var userPwd = 'pass';
var db = 'dbname';

var dbUrl = 'jdbc:mysql://' + connectionName + '/' + db;

function readFromTable11() {
  var conn = Jdbc.getConnection(dbUrl, user, userPwd); //error here
  Logger.log(conn);
  var start = new Date();
  var stmt = conn.createStatement();
  stmt.setMaxRows(1000);
  var results = stmt.executeQuery('SELECT * FROM items');
  var numCols = results.getMetaData().getColumnCount();

  while (results.next()) {
    var rowString = '';
    for (var col = 0; col < numCols; col++) {
      rowString += results.getString(col + 1) + '\t';
    }
    Logger.log(rowString);
  }

  results.close();
  stmt.close();

  var end = new Date();
  Logger.log('Time elapsed: %sms', end - start);
}
Run Code Online (Sandbox Code Playgroud)

我已经搜遍了网络,但仍然无法让它工作。

Tan*_*edi 5

好吧,事实证明 Google Scripts 仅支持 MySql v5.5.x 版本,因此上面的操作会导致问题是“数据库连接失败”。因此,为了确保成功连接,只需在 RDS 中进行与上述相同的设置,但选择 MySQL Engine 版本为 5.5.x 并使用此 - (toolbox.googleapps.com/apps/dig) 查找您的端点 IP 地址以查找可能的 DNS 问题。我会更新更多。