You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法从Google Apps Script连接MySQL:查询IP及验证连接代码

Google Apps Script连接MySQL的IP获取与代码验证

一、获取Google Apps Script的出口IP地址

由于Google Apps Script使用共享IP池对外发起请求,单次运行的IP可能不同,分两种场景处理:

1. 临时获取当前脚本实例的出口IP

可通过调用第三方IP查询服务,获取当前脚本运行时的公网IP(仅用于临时测试,无法作为永久白名单):

function getCurrentGoogleIP() {
  const response = UrlFetchApp.fetch('https://api.ipify.org');
  console.log('当前出口IP:' + response.getContentText());
}

运行函数后,在日志中查看输出的IP,可临时添加到MySQL远程访问列表测试连接。

2. 永久白名单配置

为确保稳定连接,需将Google官方公布的所有Apps Script JDBC服务IP段添加到MySQL允许列表。可通过以下脚本获取完整IP范围:

function getGoogleJDBCIPRanges() {
  const response = UrlFetchApp.fetch('https://www.gstatic.com/ipranges/goog.json');
  const ipData = JSON.parse(response.getContentText());
  const jdbcRanges = ipData.prefixes.filter(item => item.service === 'JDBC');
  console.log('Google JDBC IP段:', jdbcRanges);
}

运行后将输出的所有IP段添加到主机服务商的MySQL远程访问列表中。

二、MySQL连接代码验证

你提供的连接代码结构正确,但需注意以下细节:

var address = 'login.owlypia.org'; 
var user = 'login_demo'; 
var userPwd = '*******'; 
var db = 'login_demo'; 
var dbUrl = 'jdbc:mysql://' + address + '/' + db; 
var conn = Jdbc.getConnection(dbUrl, user, userPwd);
  • 端口检查:若MySQL未使用默认3306端口,需在地址后追加端口号,例如:login.owlypia.org:3307
  • 权限验证:确保login_demo用户拥有远程访问权限(而非仅本地localhost权限)
  • 资源释放:完成操作后必须关闭连接,避免资源泄漏:
    conn.close();
    
  • 异常处理:建议添加try-catch块捕获错误,方便排查问题:
    try {
      var conn = Jdbc.getConnection(dbUrl, user, userPwd);
      // 执行数据插入操作
    } catch (e) {
      console.error('连接失败:', e.message);
    } finally {
      if (conn) conn.close();
    }
    

内容的提问来源于stack exchange,提问作者Kenan Thompson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 00:50:59