[英]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.