我正在尝试连接位于客户端计算机上的MySQL数据库,试图给它的IP4地址也试图提供全局IP。但不成功。
我们是否只需要使用cleardb或如果可能的话如何实现?
从我之前的问题回来:
Ip4address not working for node-mysql connection ubuntu
我解决了全局连接问题,但现在使用heroku进行了部署。
我正在关注this mysql for nodejs
主机名目前是:192.1683.3.72
,它在我们的局域网网络中共享。现在每个人都用这个连接。
全球知识产权是xxx.xxx.xxx.xxx
我的连接代码如下所示:
var mysql = require('mysql');
var connection = mysql.createConnection({
host : '192.168.3.72',
user : 'root',
password : 'xxx',
...
});
部署后,我收到错误消息:使用heroku logs -t
2015-05-22T05:23:12.021430+00:00 app[web.1]: conDB => { host: '192.168.3.72',
2015-05-22T05:23:12.021332+00:00 app[web.1]: code: 'ETIMEDOUT',
2015-05-22T05:23:12.021335+00:00 app[web.1]: fatal: true }
2015-05-22T05:23:12.021432+00:00 app[web.1]: user: 'root',
2015-05-22T05:23:12.021435+00:00 app[web.1]: password: 'xxxx',
2015-05-22T05:23:12.021433+00:00 app[web.1]: database: 'test',
2015-05-22T05:23:12.021813+00:00 app[web.1]: mysql
2015-05-22T05:23:12.021436+00:00 app[web.1]: port: '3306' }
2015-05-22T05:23:12.021831+00:00 app[web.1]: Reconnecting mysql
2015-05-22T05:23:18.413926+00:00 heroku[web.1]: Idling
2015-05-22T05:23:18.414507+00:00 heroku[web.1]: State changed from up to down
2015-05-22T05:23:20.920191+00:00 heroku[web.1]: Stopping all processes with SIGTERM
2015-05-22T05:23:22.462124+00:00 heroku[web.1]: Process exited with status 143
2015-05-22T05:53:42.632728+00:00 heroku[web.1]: Unidling
2015-05-22T05:53:42.634780+00:00 heroku[web.1]: State changed from down to starting
2015-05-22T05:53:47.385022+00:00 heroku[web.1]: Starting process with command `node app.js`
2015-05-22T05:53:49.331466+00:00 app[web.1]: Detected 512 MB available memory, 512 MB limit per process (WEB_MEMORY)
2015-05-22T05:53:49.331482+00:00 app[web.1]: Recommending WEB_CONCURRENCY=1
2015-05-22T05:53:49.913038+00:00 app[web.1]: /app/node_modules/traceback/lib/frame.js:25
2015-05-22T05:53:49.913045+00:00 app[web.1]: frame.type = frame.getTypeName()
2015-05-22T05:53:49.913047+00:00 app[web.1]: ^
2015-05-22T05:53:49.913049+00:00 app[web.1]: TypeError: Cannot read property 'constructor' of undefined
2015-05-22T05:53:49.913051+00:00 app[web.1]: at CallSiteGetTypeName (native)
2015-05-22T05:53:49.913052+00:00 app[web.1]: at Object.make_easy [as make] (/app/node_modules/traceback/lib/frame.js:25:27)
2015-05-22T05:53:49.913054+00:00 app[web.1]: at /app/node_modules/traceback/traceback.js:38:54
2015-05-22T05:53:49.913055+00:00 app[web.1]: at Array.map (native)
2015-05-22T05:53:49.913057+00:00 app[web.1]: at traceback (/app/node_modules/traceback/traceback.js:38:16)
2015-05-22T05:53:49.913059+00:00 app[web.1]: at Object.<anonymous> (/app/BusinessLogicLayer/event.js:8:13)
2015-05-22T05:53:49.913060+00:00 app[web.1]: at Module._compile (module.js:460:26)
2015-05-22T05:53:49.913062+00:00 app[web.1]: at Object.Module._extensions..js (module.js:478:10)
2015-05-22T05:53:49.913063+00:00 app[web.1]: at Module.load (module.js:355:32)
2015-05-22T05:53:49.913064+00:00 app[web.1]: at Function.Module._load (module.js:310:12)
2015-05-22T05:53:50.665839+00:00 heroku[web.1]: State changed from starting to crashed
2015-05-22T05:53:50.655887+00:00 heroku[web.1]: Process exited with status 1
2015-05-22T05:53:50.666690+00:00 heroku[web.1]: State changed from crashed to starting
2015-05-22T05:53:54.396236+00:00 heroku[web.1]: Starting process with command `node app.js`
2015-05-22T05:53:55.957715+00:00 app[web.1]: Detected 512 MB available memory, 512 MB limit per process (WEB_MEMORY)
2015-05-22T05:53:55.957797+00:00 app[web.1]: Recommending WEB_CONCURRENCY=1
2015-05-22T05:53:56.481815+00:00 app[web.1]: /app/node_modules/traceback/lib/frame.js:25
2015-05-22T05:53:56.481819+00:00 app[web.1]: frame.type = frame.getTypeName()
2015-05-22T05:53:56.481821+00:00 app[web.1]: ^
2015-05-22T05:53:56.481823+00:00 app[web.1]: TypeError: Cannot read property 'constructor' of undefined
2015-05-22T05:53:56.481824+00:00 app[web.1]: at CallSiteGetTypeName (native)
2015-05-22T05:53:56.481826+00:00 app[web.1]: at Object.make_easy [as make] (/app/node_modules/traceback/lib/frame.js:25:27)
2015-05-22T05:53:56.481827+00:00 app[web.1]: at /app/node_modules/traceback/traceback.js:38:54
2015-05-22T05:53:56.481829+00:00 app[web.1]: at Array.map (native)
2015-05-22T05:53:56.481831+00:00 app[web.1]: at traceback (/app/node_modules/traceback/traceback.js:38:16)
2015-05-22T05:53:56.481832+00:00 app[web.1]: at Object.<anonymous> (/app/BusinessLogicLayer/event.js:8:13)
2015-05-22T05:53:56.481833+00:00 app[web.1]: at Module._compile (module.js:460:26)
2015-05-22T05:53:56.481835+00:00 app[web.1]: at Object.Module._extensions..js (module.js:478:10)
2015-05-22T05:53:56.481836+00:00 app[web.1]: at Module.load (module.js:355:32)
2015-05-22T05:53:56.481838+00:00 app[web.1]: at Function.Module._load (module.js:310:12)
2015-05-22T05:53:57.223514+00:00 heroku[web.1]: Process exited with status 1
2015-05-22T05:53:57.232600+00:00 heroku[web.1]: State changed from starting to crashed
2015-05-22T05:53:58.701816+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=xxx.herokuapp.com request_id=8cb65519-461b-4618-9b0e-fa2ffc6e2c52 fwd="123.201.255.186" dyno= connect= service= status=503 bytes=
2015-05-22T05:53:59.630499+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=xxx.herokuapp.com request_id=1cc626ed-bb81-4f9c-87ba-b82fc7edac54 fwd="123.201.255.186" dyno= connect= service= status=503 bytes=
2015-05-22T06:34:06.732088+00:00 heroku[api]: Deploy cfbef7c by user@xxx.com
我还有一个附加问题:
我也在使用gulp,我需要在节点之前使用gulp命令 我的Procfile中的app.js或我是否需要部署本地构建的副本 到了heroku服务器,因为我忽略了git中的文件
答案 0 :(得分:0)
无法从服务器调用本地数据库,因为它与该特定服务相关。
如果仍然需要调用它,那么我们必须有一个单独的 提供全局IP的服务器还需要检查防火墙 如果允许外部连接,则设置。
所以我暂时可以使用clearDB管理heroku本身的Mysql应用程序。
连接字符串类似如下:
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'us-xxx-xxx-xxx-02.cleardb.net',
user : 'xxxxxxxx',
password : 'yyyyyyyy',
database : 'heroku_xxxxxxxxxxxx'
...
});
还使用以下代码经常断开连接:
con.on('error', function(err) {
console.log('db error', err);
if(err.code === 'PROTOCOL_CONNECTION_LOST') { // Connection to the MySQL server is usually
console.log("Connection timeout, so Reconnecting");
scope.initDBConn(); // lost due to either server restart, or a
} else { // connnection idle timeout (the wait_timeout
throw err; // server variable configures this)
}
});
到上个星期五,一切都运转良好,但在没有任何改动的情况下再次面对问题,错误与上述相同:
2015-05-22T14:19:09.407569+00:00 app[web.1]: mysql connection established
2015-05-22T14:19:19.320380+00:00 heroku[web.1]: Idling
2015-05-22T14:19:19.320953+00:00 heroku[web.1]: State changed from up to down
2015-05-22T14:19:21.387624+00:00 heroku[web.1]: Stopping all processes with SIGTERM
2015-05-22T14:19:22.678786+00:00 heroku[web.1]: Process exited with status 143
2015-05-25T09:30:54.056759+00:00 heroku[web.1]: Unidling
2015-05-25T09:30:54.057097+00:00 heroku[web.1]: State changed from down to starting
2015-05-25T09:30:59.087828+00:00 heroku[web.1]: Starting process with command `node app.js`
2015-05-25T09:31:01.581987+00:00 app[web.1]: Recommending WEB_CONCURRENCY=1
2015-05-25T09:31:01.581960+00:00 app[web.1]: Detected 512 MB available memory, 512 MB limit per process (WEB_MEMORY)
2015-05-25T09:31:02.270675+00:00 app[web.1]: /app/node_modules/traceback/lib/frame.js:25
2015-05-25T09:31:02.270681+00:00 app[web.1]: frame.type = frame.getTypeName()
2015-05-25T09:31:02.270684+00:00 app[web.1]: ^
2015-05-25T09:31:02.270686+00:00 app[web.1]: TypeError: Cannot read property 'constructor' of undefined
2015-05-25T09:31:02.270689+00:00 app[web.1]: at Object.make_easy [as make] (/app/node_modules/traceback/lib/frame.js:25:27)
2015-05-25T09:31:02.270687+00:00 app[web.1]: at CallSiteGetTypeName (native)
2015-05-25T09:31:02.270691+00:00 app[web.1]: at Array.map (native)
2015-05-25T09:31:02.270700+00:00 app[web.1]: at Function.Module._load (module.js:310:12)
2015-05-25T09:31:02.270696+00:00 app[web.1]: at Module._compile (module.js:460:26)
2015-05-25T09:31:02.270699+00:00 app[web.1]: at Module.load (module.js:355:32)
2015-05-25T09:31:02.270690+00:00 app[web.1]: at /app/node_modules/traceback/traceback.js:38:54
2015-05-25T09:31:02.270693+00:00 app[web.1]: at traceback (/app/node_modules/traceback/traceback.js:38:16)
2015-05-25T09:31:02.270695+00:00 app[web.1]: at Object.<anonymous> (/app/BusinessLogicLayer/event.js:8:13)
2015-05-25T09:31:02.270697+00:00 app[web.1]: at Object.Module._extensions..js (module.js:478:10)
2015-05-25T09:31:03.085549+00:00 heroku[web.1]: Process exited with status 1
2015-05-25T09:31:03.095682+00:00 heroku[web.1]: State changed from starting to crashed
2015-05-25T09:31:03.096769+00:00 heroku[web.1]: State changed from crashed to starting
2015-05-25T09:31:06.546237+00:00 heroku[web.1]: Starting process with command `node app.js`
2015-05-25T09:31:08.392489+00:00 app[web.1]: Detected 512 MB available memory, 512 MB limit per process (WEB_MEMORY)