Nodejs无法使用express连接到MySQL

时间:2017-04-20 13:01:08

标签: mysql node.js express

我正在尝试使用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(默认值)

来解决

2 个答案:

答案 0 :(得分:0)

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

mysql -u root -p

输入您的密码。

如果你看到像mysql&gt;这样的提示你有联系。 如果没有,请检查您的凭据。

也请参阅this question

答案 1 :(得分:0)

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

来解决