【问题标题】:Nodejs cannot connect to MySQL using expressNodejs 无法使用 express 连接到 MySQL
【发布时间】:2017-09-17 03:14:51
【问题描述】:

我正在尝试使用 XAMMP 将我的项目连接到 MySQL 以获得登录页面。

我无法连接到 MySQL

我的代码:

var mysql=require('mysql');
var connection=mysql.createConnection({
  host:'127.0.0.1',
  port:'3307',
  user:'root',
  password:'1234',
  database:'db'
});

connection.connect(function(error){
  if(!!error){
    console.log(error);
  }else{
    console.log('Connected!:)');
  }
})

运行节点服务器后出错

{ Error: ER_ACCESS_DENIED_ERROR: Access denied for user 'root'@'localhost' (using password: YES)
    at Handshake.Sequence._packetToError (D:\db\database\node_modules\mysql\lib\protocol\sequences\Sequence.js:52:14)
    at Handshake.ErrorPacket (D:\db\database\node_modules\mysql\lib\protocol\sequences\Handshake.js:103:18)
    at Protocol._parsePacket (D:\db\database\node_modules\mysql\lib\protocol\Protocol.js:280:23)
    at Parser.write (D:\db\database\node_modules\mysql\lib\protocol\Parser.js:75:12)
    at Protocol.write (D:\db\database\node_modules\mysql\lib\protocol\Protocol.js:39:16)
    at Socket.<anonymous> (D:\db\database\node_modules\mysql\lib\Connection.js:103:28)
    at emitOne (events.js:96:13)
    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 (D:\db\database\node_modules\mysql\lib\protocol\Protocol.js:141:48)
    at Protocol.handshake (D:\db\database\node_modules\mysql\lib\protocol\Protocol.js:52:41)
    at Connection.connect (D:\db\database\node_modules\mysql\lib\Connection.js:130:18)
    at Object.<anonymous> (D:\db\database\config\express.js:15: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)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
  code: 'ER_ACCESS_DENIED_ERROR',
  errno: 1045,
  sqlState: '28000',
  fatal: true }

** 我想知道如何在项目的另一个 js 文件中插入或从数据库中选择。我可以将它写入控制器文件吗?**

更新解决方案! - 这个问题是因为 xammp 端口和 MySQL 服务器端口不匹配。 它通过将 my.ini 文件中的 xammp MSQL 端口配置为 3306(默认)来解决

【问题讨论】:

  • 尝试localhost而不是'127.0.0.1',并通过手动登录mysql服务器确保用户名和密码正确。
  • 试过还是一样的错误。

标签: mysql node.js express


【解决方案1】:

尝试通过 cli 连接。在终端上输入 -

mysql -u root -p

输入您的密码。

如果您看到类似 mysql> 的提示,则您已连接。 如果不是,请检查您的凭据。

也请参考this question

【讨论】:

  • 授权后它显示'mysql>Query ok ..',但是当我尝试'node server'时。它仍然出现相同的错误代码。
【解决方案2】:

解决方案!:-这个问题是因为 xammp 端口和 MySQL 服务器端口不匹配。它通过将 my.ini 文件中的 xammp MSQL 端口配置为 3306(默认)来解决

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-08
    • 1970-01-01
    • 2023-03-19
    • 2014-11-06
    • 1970-01-01
    • 2014-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多