jdbc连接错误

时间:2012-05-16 09:22:48

标签: java jdbc google-spreadsheet-api

我想填写一个带有mysql数据库查询输出的google电子表格单元格,所以我按照google教程中的示例编写了这个简单的脚本:

function get_tbs_number() {
    var conn = Jdbc.getConnection("jdbc:mysql://127.0.0.1:9008/icadata");
    var stmt = conn.createStatement();
    stmt.setMaxRows(100);
    var start = new Date();
    var rs = stmt.executeQuery("select count(*) from CNGSfiltered where run=10269 and (GTO1>4 or GTO2>4 or GTO3>4 or GTO4>4);");
    var doc = SpreadsheetApp.getActiveSpreadsheet();
    var cell = doc.getRange('a1');
    cell.offset(0, 0).setValue(rs.getString(1));
    rs.close();
    stmt.close();
    conn.close();
    var end = new Date();
    Logger.log("time took: " + (end.getTime() - start.getTime()));
}

问题是,当我尝试运行脚本时,连接到数据库时出错,而从命令行(mysql -h localhost -P 9008 -u#-p#icadata)连接到同一个数据库时工作

1 个答案:

答案 0 :(得分:0)

问题是Google无法访问127.0.0.1。尝试在路由器上打开mysql端口(9008)。然后使用www.whatismyip.com获取您的公共IP地址。

"jdbc:mysql://<myPublicIP>:9008/icadata"

然后,您可能必须运行包含谷歌IP或使用%(不太安全)的sql grant命令。

grant all on icadata.* to '<user>'@'<google ips>' identified by '<password>';
祝你好运!以下是一些参考:https://developers.google.com/apps-script/jdbc