NodeJS/mySQL - ER_ACCESS_DENIED_ERROR 用户“root”@“localhost”的访问被拒绝(使用密码:YES)

2024-04-21

我尝试通过 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。不确定虚拟机是否会产生影响。我的 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

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

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

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

有任何想法吗?


我有同样的问题,我通过将密码更改为空字符串解决了它。

var mysql = require('mysql');
var connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: ''
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NodeJS/mySQL - ER_ACCESS_DENIED_ERROR 用户“root”@“localhost”的访问被拒绝(使用密码:YES) 的相关文章

  • Iron 路由器中的多个订阅

    我一直在开发一个使用评论功能的应用程序 这导致必须订阅发表评论的集合和评论集合本身 现在看起来像这样
  • 如何在 Angular 4 材料的 Stepper 中提交表单

    如何在角材料的步进器中提交表单数据 我正在遵循角材料的示例https material angular io components stepper examples https material angular io components
  • 使用 require 而不导出

    我有从在线资源借用的这段代码 效果非常好 var express require express var bodyParser require body parser var logger require morgan var app ex
  • 为响应中的特定槽位提供槽位值并恢复对话

    我正在处理 lex 并希望在响应中给出槽值 只有当用户在前一个槽值中输入特定输入时才会询问该值 我正在尝试一些事情 但我不这样做 我做得对还是错 我在 lex 中有以下插槽 出发城市 到达城市 出发 单程或往返 归期 日期 出发日期 航班时
  • jQuery - 如何确定哪个链接被点击

    我有一个简单的 PHP 代码 可以生成n以下代码的副本 p class center Click Here to See Data p div class divSDB L2 div 它是使用 PHP 生成的 因此副本的数量预先未知 在另一
  • PHP 扩展 mysqli 和 nd_mysqli 之间的区别[重复]

    这个问题在这里已经有答案了 Mysqli 准备好的语句 如下所示 在以下情况下会抛出以下错误 get result 叫做 stmt connection gt prepare select column from table where i
  • 强制上下文

    我有一个类 其中有一个私有属性和一个公共访问方法 Person function this Name asd var public new Object public Name function value if value undefin
  • 无法处理 ajax 中的 302 重定向,为什么? [复制]

    这个问题在这里已经有答案了 我有一个使用表单身份验证用 asp net mvc 编写的后端服务器 当用户未通过身份验证时 服务器将自动发送 302 重定向到登录操作并返回登录页面 在客户端 我有一个项目列表 只有经过身份验证的用户才能访问此
  • 从 Inno Setup 项目内部调用 MySQL

    我正在为一些使用 MySQL 的软件编写安装程序 我正在尝试运行 sql用于在安装时设置数据库的脚本 唉 我目前在执行它时遇到了很大的问题 这个问题似乎是由于这样一个事实而产生的 当你设置一条通往 sql文件内的 execute SOURC
  • Redux 中的排队操作

    我目前遇到的情况是我需要连续运行 Redux Actions 我看过各种中间件 比如 redux promise 看起来不错如果您知道触发根操作 由于缺乏更好的术语 时的连续操作是什么 本质上 我想维护一个可以随时添加的操作队列 每个对象在
  • 解码URIComponent抛出错误“URI格式错误”

    As unescape已被弃用 我已选择decodeURIComponent 但它没有按预期工作 decodeURIComponent无法解码以下 URI 组件 Coast 20Guard 20Academy 20to 20hold 20a
  • 如何防止 Ajax/javascript 结果在浏览器中缓存?

    如何防止浏览器缓存Ajax结果 我有事件触发的 Ajax 脚本 仅当浏览器数据被清除时才显示结果 在 IE6 和 Firefox 3 0 10 中测试 随机 URL 可以工作 但它是一种 hack HTTP 内置了应该可以工作的解决方案 尝
  • 如何通过 Grunt 运行节点脚本?

    我希望通过我的 gruntfile 运行节点命令 我只需要运行 node index js 作为任何其他任务之前的第一个任务 我尝试四处寻找但没有找到答案 我相信这可能很简单 但我不确定如何做 我需要加载 nmp 任务吗 这就是我的 Gru
  • CSS/Javascript 将单词与特定字符对齐

    我如何使用 CSS Javascript 将 html 中的单词与该单词中的任意字符对齐 更改对齐字符的样式 例如使其粗体 以与其他字符形成对比 如本例中所示 对齐和粗体 k e t 和 f stack overflow stack ove
  • Knockout.js——理解 foreach 和 with

    我一直在阅读 learn knockout js 教程并进行实验 有人可以解释为什么这有效吗 教程 单页应用程序 步骤 2 使用with chosenFolderData and foreach mails table class mail
  • 如何在外部 .js 文件中分离 .vue 组件的方法?

    我的组件留下了许多行代码 因此我决定将这些方法放在一个名为functions js 的单独文件中 我无法调用这些方法 我试过这个 函数 js function sendList function getLists function dele
  • 使用 JavaScript 检测硬重新加载

    为了澄清 I am not试图区分刷新和重新加载 因此这不是重复的刷新与重新加载 https stackoverflow com questions 5004978 check if page gets reloaded or refres
  • 双向数据绑定(Angular)与单向数据流(React/Flux)

    上周 我一直在试图弄清楚如何双向数据绑定 Angular https docs angularjs org guide databinding and 单向数据流 React Flux https youtu be i 969noyAM是不
  • Node Express 和 csurf - 403(禁止)无效的 csrf 令牌

    浏览并尝试了我在这里和其他地方通过谷歌搜索能找到的所有东西 但我就是无法克服这一点 我正在使用 Node Express EJS 并尝试在使用 jQuery ajax 发布的表单上使用 csurf 无论我如何配置 csurf 我都会收到 4
  • 在多个 html 文件上运行 javascript

    我有一个包含 1000 个 html 文件的文件夹 我必须使用 xpath 从每个 html 中删除某些节点 所以我已经制作了javascript 我无法打开每个文件并通过 Firefox 控制台运行 javascript 我用的是linu

随机推荐