Tôi sử dụng phía máy chủ Node.js. Tôi đã thử mã của tôi trên localhost và mọi thứ hoạt động tốt. Tôi đã mua một máy chủ và cài đặt Apache và node.js vào nó và kiểm tra ứng dụng web của tôi ở đó. Tôi đã thay đổi chính xác cấu hình kết nối MySQL từ máy chủ cục bộ sang cấu hình máy chủ.Node.js MySQL - Lỗi: kết nối ECONNREFUSED
tôi thử nghiệm ứng dụng web của tôi với cấu hình này:
var mysql = require('mysql');
var mysqlConnection;
function new_mysqlConnection() {
mysqlConnection = mysql.createConnection({
host : 'myurl.at',
user : 'myusername',
database : 'mydatabase',
password : 'mypassword'
});
}
tôi khởi động server Node.js với:
$ node server.js
Khi tôi tải trang, nó được hiển thị một cách chính xác, nhưng khi Node. js cố gắng kết nối với cơ sở dữ liệu Tôi luôn gặp lỗi sau:
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)
Hoặc máy chủ của bạn không đúng hoặc bạn cần chỉ định số cổng. Cổng mysqld của bạn đang chạy trên cổng nào? Sau khi điều này đã được sắp xếp, một khả năng khác là các cổng trên máy chủ của bạn bị chặn. Bạn đang kết nối với loại mạng nào? Thông thường chúng tôi kết nối thông qua localhost, hoặc một mạng nội bộ, và không phải internet. – beiller
@beiller Trước tiên, tôi xin cảm ơn vì câu trả lời nhanh của bạn. Tôi đã thử nó với thiết lập cổng trong cấu hình, nhưng nó cũng không hoạt động. Mysql chạy trên cổng này: 'tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 4322/mysqld' Server.js của tôi đang chạy trên cổng 2000, cả hai đều chạy trên cùng một cổng? Bạn có ý nghĩa gì với "loại mạng mà bạn đang kết nối thông qua?" Tăng bạn! – Nico
Không, chúng không chạy trên cùng một cổng. Thông báo lỗi của bạn về cơ bản có nghĩa là "kết nối của bạn đã bị từ chối bởi hệ điều hành" IE bạn không bao giờ có gần chạm vào máy chủ mysql. Bằng cách yêu cầu những gì mạng, tôi yêu cầu, là mysql và nút của bạn.ứng dụng js đang chạy trên cùng một máy chủ vật lý? – beiller