我有类似这个人的问题:连接ECONNREFUSED - 节点js,sql
我正在尝试将app.js连接到作为MAMP一部分运行的现有数据库.MAMP在端口8889上运行mysql; 我怎么告诉node.js哪个端口找到mysql?
我一直SequelizeConnectionRefusedError试图连接到我的服务器上的MySQL数据库.
登录凭据是正确的,端口是打开的,一切看起来都很好(并且在开发环境中就像一个魅力).
对于稀缺的背景信息感到抱歉,但我在这里傻眼了 - 我真的不知道是什么原因导致了这个问题.
这是我的输出 mysql --version
mysql Ver 14.14 Distrib 5.5.43, for debian-linux-gnu (x86_64) using readline 6.3
Run Code Online (Sandbox Code Playgroud)
这是我用来初始化Sequelize的代码.我想要它使用的表还不存在,但我很确定这个问题没有任何关系.我已尝试使用root用户登录,但没有骰子 - 我仍然得到相同的错误.
var sequelize = new Sequelize("database", username, password, {
host: "localhost",
dialect: "mysql",
port: 3306,
define: {
paranoid: true
}
});
var Model = sequelize.define("Model", {
md5: {type: Sequelize.STRING(128)},
ip: {type: Sequelize.STRING(256)},
url: {type: Sequelize.STRING(1024)}
});
sequelize.sync();
Run Code Online (Sandbox Code Playgroud)
这是在Ubuntu 14.04上运行的,其中节点在Passenger后面运行(尽管如果我直接运行带有节点的应用程序也会出现错误).我在同一台服务器上运行nginx和PHP,其中另一个PHP应用程序连接到数据库,如果有任何相关性的话.
什么可能导致这个问题?
我无法运行服务器......我收到错误消息 ECONNREFUSED
如何解决此错误!
当我尝试使用不同的端口时......都给了我同样的错误!
ubuntu@ip-MyIP:~/rainmelon/projects/FindMyBuffet$ node app.js
Express server listening on port 7005
Error: connect ECONNREFUSED
at errnoException (net.js:884:11)
at Object.afterConnect [as oncomplete] (net.js:875:19)
--------------------
at Handshake.Sequence (/home/ubuntu/rainmelon/projects/FindMyBuffet/node_modules/mysql/lib/protocol/sequences/Sequence.js:15:20)
at new Handshake (/home/ubuntu/rainmelon/projects/FindMyBuffet/node_modules/mysql/lib/protocol/sequences/Handshake.js:9:12)
at Protocol.handshake (/home/ubuntu/rainmelon/projects/FindMyBuffet/node_modules/mysql/lib/protocol/Protocol.js:42:50)
at Connection.connect (/home/ubuntu/rainmelon/projects/FindMyBuffet/node_modules/mysql/lib/Connection.js:73:18)
at Object.<anonymous> (/home/ubuntu/rainmelon/projects/FindMyBuffet/app.js:15:12)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
Run Code Online (Sandbox Code Playgroud) 我正在运行这个脚本:
var mysql = require('mysql');
var connection = mysql.createConnection("mysql://localhost/");
connection.connect();
console.log(connection)
Run Code Online (Sandbox Code Playgroud)
但是得到错误......
{ config:
{ host: 'localhost',
port: 3306,
socketPath: undefined,
user: undefined,
password: undefined,
database: '',
insecureAuth: false,
supportBigNumbers: false,
debug: undefined,
timezone: 'local',
flags: '',
queryFormat: undefined,
pool: undefined,
typeCast: true,
maxPacketSize: 0,
charsetNumber: 33,
clientFlags: 193487 },
_socket:
{ _handle:
{ writeQueueSize: 0,
owner: [Circular],
onread: [Function: onread] },
_pendingWriteReqs: 0,
_flags: 0,
_connectQueueSize: 0,
destroyed: false,
errorEmitted: false,
bytesRead: 0,
_bytesDispatched: 0,
allowHalfOpen: undefined,
_connecting: true, …Run Code Online (Sandbox Code Playgroud) 我无法连接到 MySQL 数据库。我在谷歌上搜索了一些解决方案,但似乎没有一个有效,或者我可能还没有理解它们。这是设置:
let express = require("express");
let mysql = require("mysql");
let http = require("http");
let app = express();
http.createServer(app).listen(8000, function() {
console.log("Listening on http://localhost:" + port)
});
var connection = mysql.createConnection({
host: "127.0.0.1",
user: "root",
password: process.env.DB_PASSWORD,
database: "users",
port: 8000
});
connection.connect();
connection.query("SELECT * FROM user", function(err, rows, fields)
{
if (err) {
console.error("error connecting: " + err.stack);
return;
}
console.log(rows[0]);
});
connection.end();
Run Code Online (Sandbox Code Playgroud)
尝试与“socketPath”和另一个端口建立连接,但它们都返回错误:
Error: connect ECONNREFUSED 127.0.0.1:3306
at Object.exports._errnoException (util.js:1034:11)
at exports._exceptionWithHostPort (util.js:1057:20)
at TCPConnectWrap.afterConnect [as oncomplete] …Run Code Online (Sandbox Code Playgroud)