关于 node.js 和 mysql

Posted

技术标签:

【中文标题】关于 node.js 和 mysql【英文标题】:About node.js with mysql 【发布时间】:2019-03-19 13:10:33 【问题描述】:

我正在使用 node.js 和 mysql 数据库。

我正在使用这样的配置:

var mysql = require('mysql');
var client = mysql.createConnection(
     host: 'localhost',
     user: 'root',
     password: 'java1234',
     port: '3306',
     database: 'sample'
);

然后我收到以下错误消息:

错误:ER_ACCESS_DENIED_ERROR:拒绝用户访问 'root'@'localhost'(使用密码:否) 在 Handshake.Sequence._packetToError (C:\node\test11_users\node_modules\mysql\lib\protocol\sequences\Sequence.js:47:14) 在 Handshake.ErrorPacket (C:\node\test11_users\node_modules\mysql\lib\protocol\sequences\Handshake.js:124:18) 在 Protocol._parsePacket (C:\node\test11_users\node_modules\mysql\lib\protocol\Protocol.js:278:23) 在 Parser.write (C:\node\test11_users\node_modules\mysql\lib\protocol\Parser.js:76:12) 在 Protocol.write (C:\node\test11_users\node_modules\mysql\lib\protocol\Protocol.js:38:16) 在套接字。 (C:\node\test11_users\node_modules\mysql\lib\Connection.js:91:28) 在套接字。 (C:\node\test11_users\node_modules\mysql\lib\Connection.js:502:10) 在 emitOne (events.js:116:13) 在 Socket.emit (events.js:211:7) 在 addChunk (_stream_readable.js:263:12) -------------------- 在 Protocol._enqueue (C:\node\test11_users\node_modules\mysql\lib\protocol\Protocol.js:144:48) 在 Protocol.handshake (C:\node\test11_users\node_modules\mysql\lib\protocol\Protocol.js:51:23) 在 Connection.connect (C:\node\test11_users\node_modules\mysql\lib\Connection.js:118:18) 在 Connection._implyConnect (C:\node\test11_users\node_modules\mysql\lib\Connection.js:453:10) 在 Connection.query (C:\node\test11_users\node_modules\mysql\lib\Connection.js:198:8) 在 C:\node\test11_users\routes\users.js:26:10 在 Layer.handle [as handle_request] (C:\node\test11_users\node_modules\express\lib\router\layer.js:95:5) 在下一个(C:\node\test11_users\node_modules\express\lib\router\route.js:137:13) 在 Route.dispatch (C:\node\test11_users\node_modules\express\lib\router\route.js:112:3) 在 Layer.handle [as handle_request] (C:\node\test11_users\node_modules\express\lib\router\layer.js:95:5)

但我无法解决这个问题。 谢谢你的解释。

【问题讨论】:

这基本上意味着您的凭据不正确。你能在外面访问 mySQL 吗? 如何在外面访问mysql?你是说工作台吗? 是或 phpadmin 什么都可以。尝试使用上述凭据登录。 我可以使用 Workbench surly 访问 mysql。但只有 node.js 不工作 进入工作台中的用户和权限页面,检查那里root的配置。 【参考方案1】:

从连接选项中删除端口并尝试

var mysql      = require('mysql');
var connection = mysql.createConnection(
  host     : 'localhost',
  user     : 'root',
  password : 'java1234',
  database : 'sample'
);

connection.connect();

【讨论】:

以上是关于关于 node.js 和 mysql的主要内容,如果未能解决你的问题,请参考以下文章

关于 node.js 和 mysql

关于Node.js

关于使用node.js和vue的一些问题

关于使用node.js和vue的一些问题

有哪些关于 Node.js 以及 Express 的书籍

关于Node