我有以下代码用于从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
感谢您的帮助!
答案 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';
}
}