Node.js MySQL - Ошибка: подключение ECONNREFUSED
Я использую серверную часть Node.js. Я пробовал свой код на localhost, и все работает нормально. Я купил сервер и установил Apache и Node.js на нем и проверил там свое веб-приложение. Я правильно изменил конфигурации подключения MySQL от localhost к конфигурациям сервера.
Я тестирую свое веб-приложение с помощью этой конфигурации:
var mysql = require('mysql');
var mysqlConnection;
function new_mysqlConnection() {
mysqlConnection = mysql.createConnection({
host : 'myurl.at',
user : 'myusername',
database : 'mydatabase',
password : 'mypassword'
});
}
Я запускаю сервер Node.js с помощью
$ node server.js
Когда я загружаю страницу, она отображается правильно, но когда Node.js пытается подключиться к базе данных, я всегда получал следующую ошибку:
Error: connect ECONNREFUSED
at errnoException (net.js:905:11)
at Object.afterConnect [as oncomplete] (net.js:896:19)
--------------------
at Protocol._enqueue (/var/www/node_modules/mysql/lib/protocol/Protocol.js:135:48)
at Protocol.handshake (/var/www/node_modules/mysql/lib/protocol/Protocol.js:52:41)
at Connection.connect (/var/www/node_modules/mysql/lib/Connection.js:119:18)
at reconnectDb (/var/www/server.js:319:18)
at app.get.email (/var/www/server.js:109:2)
at Layer.handle [as handle_request] (/var/www/node_modules/express/lib/router/layer.js:82:5)
at trim_prefix (/var/www/node_modules/express/lib/router/index.js:302:13)
at /var/www/node_modules/express/lib/router/index.js:270:7
at Function.proto.process_params (/var/www/node_modules/express/lib/router/index.js:321:12)
at next (/var/www/node_modules/express/lib/router/index.js:261:10)
Ответы
Ответ 1
Вам нужно добавить значение socket path
в объект конфигурации:
socketPath: '/var/run/mysqld/mysqld.sock'
В MAMP вы перейдете к http://localhost:8888/MAMP, и вы найдете:
/Applications/MAMP/tmp/mysql/mysql.sock
В конце у вас есть:
var connection = mysql.createConnection({
host : config.host,
user : config.user,
password : config.pass,
database : config.db,
socketPath: '/Applications/MAMP/tmp/mysql/mysql.sock'
});
Ответ 2
Проверьте свой порт MySQL на своем сервере.
В MAMP по умолчанию используется 8889.
Добавьте это в конфигурацию подключения.
Конфигурация MySQL должна выглядеть так.
this.pool = mysql.createPool({
connectionLimit: 10,
host: 'localhost',
user: 'root',
password: 'root',
database: 'todo',
port: '8889'
});
Ответ 3
У меня была та же проблема, но я решил это, изменив
host: 'localhost'
в
host: '127.0.0.1'
Ответ 4
У меня тоже такая же проблема в облаке Google с nginx
изменено
host: 'localhost'
к
host : 'cloud_instance_private_ip'
может помочь кому-то с той же проблемой
Ответ 5
Это наверное курс из-за отсутствия порта и базы данных. Сначала я написал: хост, пользователь, пароль и нет базы данных и порта.
Здесь вам нужно указать, какое у вас имя базы данных, какой у вас номер порта. Таким образом, общее количество должно быть: 1. хост 2. пользователь 3. пароль 4. база данных 5. порт
Это работает для меня, попробуйте, если это работает и для вас.
Ответ 6
Убедитесь, что ваш сервер xampp mysql запущен или нет
Ответ 7
У меня также есть та же проблема, но я нашел решение, добавив: port:"80" я connect with node.js to the server php mysql using this code:
var mysql = require ('mysql'); '
var connection=mysql.createConnection({
port:"80",
host:"localhost",
user:"root",
password:""
});