繁体   English   中英

来自将MySQL与Node.js连接的简单项目的错误

[英]Error from the simple project to connect MySQL with Node.js

我写了非常简单的mysql连接代码。 但显示错误日志:

Error: ER_ACCESS_DENIED_ERROR: Access denied for user 'root'@'127.0.0.1' (using password: YES)
    at Handshake.Sequence._packetToError (/Volumes/Data/Study/mysql-test/node_modules/mysql/lib/protocol/sequences/Sequence.js:52:14)
    at Handshake.ErrorPacket (/Volumes/Data/Study/mysql-test/node_modules/mysql/lib/protocol/sequences/Handshake.js:130:18)
    at Protocol._parsePacket (/Volumes/Data/Study/mysql-test/node_modules/mysql/lib/protocol/Protocol.js:279:23)
    at Parser.write (/Volumes/Data/Study/mysql-test/node_modules/mysql/lib/protocol/Parser.js:76:12)
    at Protocol.write (/Volumes/Data/Study/mysql-test/node_modules/mysql/lib/protocol/Protocol.js:39:16)
    at Socket.<anonymous> (/Volumes/Data/Study/mysql-test/node_modules/mysql/lib/Connection.js:103:28)
    at Socket.emit (events.js:180:13)
    at addChunk (_stream_readable.js:274:12)
    at readableAddChunk (_stream_readable.js:261:11)
    at Socket.Readable.push (_stream_readable.js:218:10)
    --------------------
    at Protocol._enqueue (/Volumes/Data/Study/mysql-test/node_modules/mysql/lib/protocol/Protocol.js:145:48)
    at Protocol.handshake (/Volumes/Data/Study/mysql-test/node_modules/mysql/lib/protocol/Protocol.js:52:23)
    at Connection.connect (/Volumes/Data/Study/mysql-test/node_modules/mysql/lib/Connection.js:130:18)
    at Object.<anonymous> (/Volumes/Data/Study/mysql-test/app.js:8:12)
    at Module._compile (module.js:649:30)
    at Object.Module._extensions..js (module.js:660:10)
    at Module.load (module.js:561:32)
    at tryModuleLoad (module.js:501:12)
    at Function.Module._load (module.js:493:3)
    at Function.Module.runMain (module.js:690:10)

我安装了mysql,以下是package.json和app.js

{
  "name": "mysql-test",
  "version": "1.0.0",
  "description": "",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "mysql": "^2.15.0"
  }
}

 const mysql = require('mysql'); const connection = mysql.createConnection({ host: 'localhost', user: 'root', password: 'mypassword', database: 'test', }); connection.connect((err) => { if (err) { throw err; } console.log('Connected!'); }); 

在phpMyAdmin中,测试数据库具有root用户的完全权限。(附加的屏幕截图)我也尝试添加端口号:3306。并尝试将“测试”数据库与终端连接,它可以正常工作。

该项目是非常简单的教程代码,只有2个文件(app.js和package.json),数据库用户名和密码正在使用终端,并且数据库权限似乎具有完全访问权限。 问题是什么 ? 在此处输入图片说明

您的代码似乎正确。 在我的phpmyadmin中,我对数据库根目录127.0.0.1全局具有两行权限ALL ALL PRIVILEGES
和root本地主机全局ALL PRIVILEGES

在您的屏幕截图上,您只有:root localhost

在您的错误:错误:ER_ACCESS_DENIED_ERROR:拒绝访问用户“根” @” 127.0.0.1'

尝试创建一个Mysql用户root@127.0.0.1并授予他数据库测试特权。

非常感谢你。 它与您的解决方案一起使用。 我在用户列表中有“ root / localhost”用户,但添加了新用户“ root / 127.0.0.1”。 我仍然不明白为什么“ localhost”与“ 127.0.0.1”不同。 但是无论如何问题都解决了。

暂无
暂无

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

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