【发布时间】:2019-02-05 07:56:13
【问题描述】:
我已经在我的计算机上安装了 mysql,尽管它显示某些软件包可能没有安装(在安装期间),但是当我尝试使用 Node JS 执行时它显示出意外的错误。
我已经尝试过使用“npm”安装 mysql 的全局和本地方法,并在每个目录中都尝试过,但我的代码仍然无法正常工作。
var mysql = require('mysql');
var con = mysql.createConnection({
host: "localhost",
user: "yourusername",
password: "yourpassword",
database: "mydb"
});
con.connect(function(err) {
if (err) throw err;
console.log("Connected!");
var sql = "INSERT INTO customers (name, address) VALUES ?";
var values = [
['John', 'Highway 71'],
['Peter', 'Lowstreet 4'],
['Amy', 'Apple st 652'],
['Hannah', 'Mountain 21'],
['Michael', 'Valley 345'],
['Sandy', 'Ocean blvd 2'],
['Betty', 'Green Grass 1'],
['Richard', 'Sky st 331'],
['Susan', 'One way 98'],
['Vicky', 'Yellow Garden 2'],
['Ben', 'Park Lane 38'],
['William', 'Central st 954'],
['Chuck', 'Main Road 989'],
['Viola', 'Sideway 1633']
];
con.query(sql, [values], function (err, result) {
if (err) throw err;
console.log("Number of records inserted: " + result.affectedRows);
});
});
我已经正确安装了从 Node 到 Mysql 的所有东西,它在 try catch 块中显示错误。请提出一些建议
【问题讨论】:
-
该代码在我的环境中正常运行,我看到插入了 14 条记录。所以我会尝试通过命令行 mysql 应用程序连接,看看是否可以连接。
-
“显示错误”。哪些是?
-
为了能够调试问题,可以考虑添加; connection.connect(function(err) { console.log(err.code); // 'ECONNREFUSED' console.log(err.fatal); // true });
-
C:\Users\luckyy\Desktop\Node JS\node_modules\mysql\lib\protocol\Parser.js:80 throw err; // 重新抛出非 MySQL 错误 ^ 错误:ER_NOT_SUPPORTED_AUTH_MODE:客户端不支持服务器请求的身份验证协议;考虑在 Handshake.Sequence._packetToError (C:\Users\luckyy\Desktop\Node JS\node_modules\mysql\lib\protocol\sequences\Sequence.js:47:14) 处升级 MySQL 客户端 Handshake.ErrorPacket 请注意:我是在 Windows 的普通 cmd 中运行它,我在 Node JS 目录中运行..请帮助