Node使用Sequlize连接Mysql报错:Access denied for user ‘xxx’@‘localhost’

 更新时间:2018年01月03日 08:41:15   作者:鲁鹏  
这篇文章主要给大家介绍了关于Node使用Sequlize连接Mysql报错:Access denied for user 'xxx'@'localhost'的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。

前言

最近在工作中遇到问题,问题如下:

Unhandled rejection SequelizeAccessDeniedError: Access denied for user 'lupeng'@'localhost' (using password: YES)

这是Node在使用Sequlize连接Mysql数据时报的错,关键看冒号后面的错误:访问拒绝,关键是访问拒绝的错误,说明数据库连接这里有问题,数据库连接访问拒绝,要么是没有相应的操作权限,要么是账号密码错误。

这样就把问题定位在访问权限以及账号密码错误两点上了,千万不要忘其他方面去找问题了,那样只会是浪费时间。

1. 用户权限的问题

权限问题从数据库着手,确认用户授权后,是否刷新的权限列表。也就是在使用Grant命令授权用户后,应该要使用flush privileges命令,这个是很多人会忽略的问题。

如果用户授权没有问题,那么尝试重启mysql服务器。使用命令/etc/init.d/mysql restart重启mysql服务器,不同Linux版本重启命令可能不一样,我这里是Debain系。

如果重启了问题还没有解决,那么可能就不是数据库用户权限的问题了。

2. 账号密码的问题

账号密码错误,这个问题听起来很扯,但是开发过程中,很多人会忽略掉。为什么这么说?我使用的是config-lite模块来配置数据库参数,因为会在多个系统环境中切换开发,使用config-lite模块可以通过简单的环境变量配置,来加载不同的参数文件。具体用法参照:不同环境下配置文件使用

我的问题就出现在这里,打开一个终端运行项目npm run test,package.json文件里配置着test的运行脚本NODE_ENV=test supervisor --harmony -i views/ ./bin/www。另打开一个终端,运行数据库同步的命令,同步命令是单独写在一个js脚本中,脚本里引用了数据连接方法(通用的),连接方法如下:

var Sequelize = require('sequelize');
// 引入数据库配置文件
var sqlConfig = require('config-lite')(__dirname).mysql;
var sequelize = new Sequelize(sqlConfig.database, sqlConfig.user, sqlConfig.password, {
 host: sqlConfig.host,
 dialect: 'mysql',
 pool: {
 max: 10,
 min: 0,
 idle: 10000
 }
});
module.exports = sequelize;

于是在同步数据库的时候,总是如标题报错,然而觉得没错啊,最后检查才发现问题所在:运行test脚本里的NODE_ENV环境变量只在当前终端下才有效,如果要另开一个终端来同步数据库,那么需要在另开的终端里再设置一下环境变量。不然加载的数据库参数是不一致的,也就是说连接数据库的用户名密码是不对的。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

相关文章

  • Node.js中package.json中库的版本号(~和^)

    Node.js中package.json中库的版本号(~和^)

    这篇文章主要介绍了Node.js中package.json中库的版本号(~和^),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-04-04
  • 深入理解Node.js的HTTP模块

    深入理解Node.js的HTTP模块

    最近在工作中接触到了Node.js标准库提供了http模块,所以这篇文章想总结下Node.js的HTTP模块,方便大家和自己以后使用的时候参考借鉴。有需要的朋友们下面来一起看看吧。
    2016-10-10
  • 使用node.js实现微信小程序实时聊天功能

    使用node.js实现微信小程序实时聊天功能

    在微信这个聊天工具里的小程序上实现聊天功能,总觉得很诧异,今天小编给大家带来了使用node.js实现微信小程序实时聊天功能,感兴趣的朋友一起看看吧
    2018-08-08
  • 详谈Node.js之操作文件系统

    详谈Node.js之操作文件系统

    下面小编就为大家带来一篇详谈Node.js之操作文件系统。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • Node.js 使用AngularJS的方法示例

    Node.js 使用AngularJS的方法示例

    这篇文章主要介绍了Node.js 使用AngularJS的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • NodeJs crypto加密制作token的实现代码

    NodeJs crypto加密制作token的实现代码

    这篇文章主要介绍了NodeJs crypto加密制作token的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • Node.js与PHP、Python的字符处理性能对比

    Node.js与PHP、Python的字符处理性能对比

    因为后续考虑实现 Fl 引擎的Node.js版本,所以对比了下Node.js和PHP的字符处理性能。发现Node.js真是甩了PHP几条街啊,再测试了下Python,比PHP还慢。
    2014-07-07
  • node.js实现websocket的即时通讯详解

    node.js实现websocket的即时通讯详解

    这篇文章主要介绍了深入浅出讲解websocket的即时通讯,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送技术的一种,需要的朋友可以参考下
    2023-05-05
  • Node.js使用Sharp.js进行图像处理的实践与技巧

    Node.js使用Sharp.js进行图像处理的实践与技巧

    Sharp.js 是一个高性能的 Node.js 图像处理库,基于 C 语言编写的 libvips 库封装而来,提供了便捷、高效的图片编辑与转换功能,以下是对 Sharp.js 的深入解析,包括全方位实践与技巧,需要的朋友可以参考下
    2024-08-08
  • 详解NodeJS模块化

    详解NodeJS模块化

    简单的说Node.js就是运行在服务端的JavaScript。Node.js是一个基于Chrome JavaScript运行时建立的一个平台。Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好
    2021-06-06

最新评论