无法从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
相关产品推荐
相关产品推荐

