繁体   English   中英

使用 node.js MySQL 连接 ECONNREFUSED 仍然出现错误

[英]Still getting error connect ECONNREFUSED using node.js MySQL

我仍然收到错误:ECONNREFUSED myip+port,我尝试添加端口,但没有帮助。 你知道有什么可以帮助的吗?

这是我的代码,

//importing mysql and csvtojson packages 
const csvtojson = require('csvtojson'); 
const mysql = require("mysql"); 
  
//database definition
const hostname = "127.0.0.1", 
    username = "root", 
    password = "root", 
    databsename = "csvtomysql",
    port = "8889"
  
//connection to the database 
let con = mysql.createConnection({ 
    host: hostname, 
    user: username, 
    password: password, 
    database: databsename, 
    port: port,
}); 
  
con.connect((err) => { 
    if (err) return console.error( 
            'error: ' + err.message); 
  
    con.query("DROP TABLE sample",  
        (err, drop) => { 
  
        // Query to create table "data" 
        var createStatament =  
        "CREATE TABLE data(Favorites char(10), " + 
        "From URL char(1000),To URL char(1000),Anchor Text char(2000),Link Status char(400), Type char(500), BLdom float, DomPop float, Power int, Trust int, Power*Trust float, Alexa float, IP char(100), CNTRY char(5))"
  
        // Creating table "data" 
        con.query(createStatament, (err, drop) => { 
            if (err) 
                console.log("ERROR: ", err); 
        }); 
    }); 
}); 
  
// CSV file name 
const fileName = "testData.csv"; 
  
csvtojson().fromFile(fileName).then(source => { 
  
    // Fetching the data from each row  
    // and inserting to the table "sample" 
    for (var i = 0; i < source.length; i++) { 
        var Favorites = source[i]["Favorites"], 
            FromUrl = source[i]["From URL"], 
            ToUrl = source[i]["To URL"], 
            AnchorText = source[i]["Anchor Text"],
            LinkStatus = source[i]["Link Status"], 
            Type = source[i]["Type"], 
            BLdom = source[i]["BLdom"], 
            DomPop = source[i]["DomPop"], 
            Power = source[i]["Power"], 
            Trust = source[i]["Trust"], 
            PowerTrust = source[i]["Power*Trust"], 
            Alexa = source[i]["Alexa"], 
            Ip = source[i]["IP"], 
            Cntry = source[i]["CNTRY"]
  
        var insertStatement =  
        `INSERT INTO sample values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`; 
        var items = [Favorites, FromUrl, ToUrl, AnchorText, LinkStatus, Type, BLdom, DomPop, Power, Trust, PowerTrust, Alexa, Ip, Cntry]; 
  
        // Inserting data of current row 
        // into database 
        con.query(insertStatement, items,  
            (err, results, fields) => { 
            if (err) { 
                console.log( 
    "Unable to insert item at row ", i + 1); 
                return console.log(err); 
            } 
        }); 
    } 
    console.log( 
"All items stored into database successfully"); 
}); 

ECONNREFUSED 是由于一些错误配置而导致的错误(顾名思义)
您确定 mysql 服务器在 node.js 后端的同一主机上运行吗?
Mysql 服务器已启动并正在运行(尝试在 Mysql Workbench 上与 DBeaver 等客户端连接)?
mysql 的标准端口是 3306(不是 8889)

$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=csvtomysql -p 8889:3306 -d mysql

你的应用程序应该可以正常工作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM