2013-08-23 81 views
2

任何想法如何從NodeJ連接到Heroku上的Mysql ClearDB?從Heroku服務器上的NodeJS到Mysql的連接

我能夠連接到運行在Navicat Heroku上的ClearDB Mysql,我甚至創建了一個名爲t_users的表。但是我從Heroku的NodeJs連接時遇到問題。

這是我的代碼,這是非常簡單的:一切正常,直到找到它會嘗試連接到MySQL

web.js:

var express = require("express"); 
var app = express(); 
app.use(express.logger()); 

var mysql  = require('mysql'); 
var connection = mysql.createConnection({ 
    host  : 'us-cdbr-east-04.cleardb.com', 
    user  : '', 
    password : '', 
    database : '' 
}); 

connection.connect(); 

app.get('/', function(request, response) { 
    response.send('Hello World!!!! HOLA MUNDOOOOO!!!'); 
    connection.query('SELECT 1 + 1 AS solution', function(err, rows, fields) { 
     if (err) throw err; 

     response.send('The solution is: ', rows[0].solution); 
    }); 
}); 

var port = process.env.PORT || 5000; 
app.listen(port, function() { 
    console.log("Listening on " + port); 
}); 

這是我得到的時候我的命令來運行行:Heroku的配置

C:\wamp\www\Nodejs_MySql_Heroku>heroku config 
=== frozen-wave-8356 Config Vars 
CLEARDB_DATABASE_URL: mysql://b32fa719432e40:[email protected]/heroku_28437b49d76cc53?reconnect=true 
PATH:     bin:node_modules/.bin:/usr/local/bin:/usr/bin:/bin 

這是LOG: http://d.pr/i/cExL

任何想法如何從NodeJ連接到Heroku上的Mysql ClearDB? 謝謝

+0

您在此問題中包含用戶名和密碼。 *快速*更改密碼。 –

回答

0

看着日誌的時間戳,似乎你的連接超時。爲'getConnection'創建一個包裝器,檢查連接健康狀況並在必要時重新建立,或者嘗試使用mysql連接池功能,這可以爲你做到這一點。

2

試試這個。希望這將幫助你

mysql://b32fa719432e40:[email protected]/heroku_28437b49d76cc53?reconnect=true 

var connection = mysql.createConnection({ 
    host  : 'us-cdbr-east-04.cleardb.com', 
    user  : 'b32fa719432e40', 
    password : '87de815a', 
    database : 'heroku_28437b49d76cc53' 
}); 

使用這個細節,它在MySQL的工作臺連接,並導入本地主機分貝

1

人們應該需要使用池連接數據庫連接來處理更好的MySQL conncurrent要求如下

var pool = mysql.createPool({ 
    connectionLimit : 100, 
    host : 'us-cdbr-iron-east-05.cleardb.net', 
    user : 'b5837b0f1d3d06', 
    password : '9d9ae3d5', 
    database : 'heroku_db89e2842543609', 
    debug : 'false' 
}); 

它只是因爲池維護自身的connection.release(),這樣你就不必理會,你應該需要釋放連接。

另一方面,您應該需要提供用戶名,密碼和數據庫名稱,正如我在我的代碼中所述。 當你從heroku獲得配置時,你會得到一個cleardb數據庫名稱。 點擊清除db數據庫按鈕,你會發現用戶名和密碼。 並獲取數據庫url,您必須在終端中運行以下命令: heroku登錄 heroku app -all(它顯示應用程序列表名稱) heroku config --app appname(它將提供數據庫url)。

休息你需要擔心,只需將所有依賴添加到你的package.json,然後推送給heroku主。 之後,您將無法將nodejs應用程序部署到heroku服務器。

相關問題