来自Google App Script的JDBC / mysql连接字符串问题

时间:2017-09-01 17:04:23

标签: mysql jdbc google-apps-script

我有以下代码用于从Google App脚本连接到mySQL服务器。它在移动服务器之前工作。现在,即使我输入了新信息(地址,名称,密码),它也不再适用。我得到它的错误"无法建立数据库连接。检查连接字符串,用户名和密码。"我不熟悉服务器,需要弄清楚如何解决这个问题。我有Putty,但我不熟悉它 - 我尝试过,但它仍然无法连接。我在下面列出了我的清理连接代码。

var address = //'address:port';
var user = //'username';
var userPwd = //'password';
var db = //'databasename';
var dbUrl = 'jdbc:mysql://' + address + '/' + db;

function testsql() { 
  var conn=Jdbc.getConnection(dbUrl,user,userPwd);

  var stmt = conn.prepareStatement("show databases"); 
  var dbList = stmt.executeQuery(); 
  dbList.next(); var row = 0; 
  Logger.log("Start of Log:"); 
  while(dbList.next()){ 
    Logger.log(dbList.getString(1)); row++; 
  } 
}

如果代码格式正确,是否有另一种方法来测试连接字符串?

我确实找到了这个问题,但我不是100%就是问题。 Google Apps Script JDBC connection problem

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

另一种可能性

您的代码对我来说没问题。但是如果你想尝试不同的东西,这个也会创建一个对话框来显示所有数据。你欢迎它。我可以告诉你,我的网站上有一个我永远无法访问的数据库,但是我移到了一个朋友网站并直接进入。我认为第一个网站可能阻止谷歌的IP地址以保持所有的网络刮板

function returnAQuery(q)
{
  var s = '';
  var address = //'address:port';
  var user = //'username';
  var userPwd = //'password';
  var db = //'databasename';
  var dbUrl = 'jdbc:mysql://' + address + '/' + db;
  s += dbUrl + ', ' + user + ', ' + userPwd + '<br />';
  s += q + '<br />';
  var conn = Jdbc.getConnection(dbUrl, user, userPwd);
  var stmt = conn.createStatement();
  var results = stmt.executeQuery(q);
  if(results)
  {
    var numCols = results.getMetaData().getColumnCount();
    for(var col = 0;col < numCols;col++)
    {
      if(col>0)s+=' , ';
      s += results.getMetaData().getColumnName(col + 1);
    }
    s += '<br />';
    while (results.next()) 
    {
      var rowString = '';
      for (var col = 0; col < numCols; col++) 
      {
        if(col>0)s+= ' , ';
        s += results.getString(col + 1);
      }
      s += '<br />';
    }
   var ui=HtmlService.createHtmlOutput(s).setWidth(1200).setHeight(450);
   SpreadsheetApp.getUi().showModelessDialog(ui, 'JDBC');
  }
  else
  {
    s += 'No results returned from query';
  }
}