当前位置: 首页 > 面试题库 >

NodeJS / mySQL-ER_ECCESS_DENIED_ERROR用户'root'@'localhost'的访问被拒绝(使用密码:是)

堵凯
2023-03-14
问题内容

我正在尝试通过NodeJS文件连接到mySQL,但是收到以下错误:

{ Error: ER_ACCESS_DENIED_ERROR: Access denied for user 'root'@'localhost' (using password: YES)
    at Handshake.Sequence._packetToError (/home/matthew/Node/mySqlTest/node_modules/mysql/lib/protocol/sequences/Sequence.js:30:14)
    at Handshake.ErrorPacket (/home/matthew/Node/mySqlTest/node_modules/mysql/lib/protocol/sequences/Handshake.js:67:18)
    at Protocol._parsePacket (/home/matthew/Node/mySqlTest/node_modules/mysql/lib/protocol/Protocol.js:197:24)
    at Parser.write (/home/matthew/Node/mySqlTest/node_modules/mysql/lib/protocol/Parser.js:62:12)
    at Protocol.write (/home/matthew/Node/mySqlTest/node_modules/mysql/lib/protocol/Protocol.js:37:16)
    at Socket.ondata (_stream_readable.js:555:20)
    at emitOne (events.js:101:20)
    at Socket.emit (events.js:188:7)
    at readableAddChunk (_stream_readable.js:176:18)
    at Socket.Readable.push (_stream_readable.js:134:10)
    --------------------
    at Protocol._enqueue (/home/matthew/Node/mySqlTest/node_modules/mysql/lib/protocol/Protocol.js:110:26)
    at Protocol.handshake (/home/matthew/Node/mySqlTest/node_modules/mysql/lib/protocol/Protocol.js:42:41)
    at Connection.connect (/home/matthew/Node/mySqlTest/node_modules/mysql/lib/Connection.js:81:18)
    at Connection._implyConnect (/home/matthew/Node/mySqlTest/node_modules/mysql/lib/Connection.js:222:10)
    at Connection.query (/home/matthew/Node/mySqlTest/node_modules/mysql/lib/Connection.js:137:8)
    at Object.<anonymous> (/home/matthew/Node/mySqlTest/index.js:11:12)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
  code: 'ER_ACCESS_DENIED_ERROR',
  errno: 1045,
  sqlState: '28000',
  fatal: true }

奇怪的是,我可以通过运行终端通过终端连接mysql -u root -p。我只在运行JavaScript时收到此错误。我已经遍历了Google和StackOverflow,但仍然找不到有效的解决方案。我在虚拟机上的Ubuntu
16.04.1上使用MySQL 5.7.16。不知道VM是否在这里有所作为。我的Javascript代码如下:

'use strict';

var mysql = require('mysql');

var connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: 'password'
});

connection.query(
    'SELECT "foo" AS first_field, "bar" AS second_field',
    function(err, results, fields) {
        console.log(err);
        console.log(results);
        connection.end();
    }
);

我已经尝试在JavaScript中使用“ locahost”以及“
127.0.0.1”。我在mySql.user表中同时具有’localhost’和‘127.0.0.1’的’root’用户,我可以通过执行以下命令来查看SELECT user, host FROM mysql.user WHERE user='root';

我通过执行以下命令为“ root”用户添加了特权:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'password';

我也在127.0.0.1上运行了上述代码。我也尝试过这个:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION

我试图像这样重置根密码:https :
//help.ubuntu.com/community/MysqlPasswordReset

FLUSH PRIVILEGES每次尝试后我都已奔跑。我已经停止并重新启动了mySQL。我已经完全卸载了mySQL并重新安装。

一切都无济于事。每次尝试运行javascript时,我都会收到拒绝访问错误,但是通过终端连接到mySQL时,我绝对没有问题。

有任何想法吗?


问题答案:

package.json中 使用最新的MySQL版本可以解决此问题。

我正在使用2.0.0版。我将版本更改为2.10.2。



 类似资料:
  • 问题内容: 我试图在服务器上部署Web应用程序,但出现此mysql数据库异常 我试图使用所有的数据库操作从命令提示符处访问数据库。 有什么错误 问题答案: 您需要授予从本地主机对root的访问权限。查看此 ubuntu帮助

  • 我正试图将一个实时WordPress站点复制到我的本地服务器上。我通过MAMP从现场站点导入数据库,在尝试连接到phpMyAdmin时收到了一条错误消息: 我在这一点上被难住了。有人能帮忙吗?

  • 问题内容: 我是MySQL的新手,我想在Windows桌面上运行WordPress,它需要MySQL。 我安装了Microsoft提供的所有内容。我从来没有为MySQL设置过root密码,在安装WordPress的最后一步中,它要求输入MySQL服务器密码。 root的默认密码是多少(如果有的话)以及如何更改它? 我试过了: 但是它显示了我: 在此之后,我尝试: 但是,它要求输入我没有的密码。 更

  • 问题内容: 这似乎是多余的,但我无法找到正确的解决方案。 我无法使用mysql控制台登录到mysql。它要求输入密码,但不知道我实际输入的内容(是否可以获取或更改密码?)这是我的config.inc的外观。 当我尝试打开phpmyadmin时,出现此错误(#1045-用户’root’@’localhost’的访问被拒绝(使用密码:是) 我试图卸载(加上已删除所有相关文件)WAMP并重新安装。它也无

  • 问题内容: 如下代码: 在上引发此异常: 这是怎么引起的,我该如何解决? 编辑: 产生: 问题答案: 从头开始创建数据库时,可以使用: 这是一个相同的场景。

  • 我试图用续集专业版创建一个数据库,它总是出现一个错误“无法连接到主机,因为访问被拒绝”。 仔细检查您的用户名和密码,确保允许从当前位置访问。 MySQL表示:用户“root”@“localhost”的访问被拒绝(使用密码:否) 我有mySQL服务器在我的Mac上运行。不确定我做错了什么。任何帮助都将不胜感激。