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


Posted in Javascript onJanuary 03, 2018

前言

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

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环境变量只在当前终端下才有效,如果要另开一个终端来同步数据库,那么需要在另开的终端里再设置一下环境变量。不然加载的数据库参数是不一致的,也就是说连接数据库的用户名密码是不对的。

总结

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

Javascript 相关文章推荐
JavaScript性能陷阱小结(附实例说明)
Dec 28 Javascript
js实现字符串转日期格式的方法
May 20 Javascript
基于javascript实现九宫格大转盘效果
May 28 Javascript
第一次接触神奇的Bootstrap网格系统
Jul 27 Javascript
jQuery操作cookie
Aug 08 Javascript
详解JavaScript时间处理之几个月前或几个月后的指定日期
Dec 21 Javascript
jQueryUI Sortable 应用Demo(分享)
Sep 07 jQuery
微信小程序身份证验证方法实现详解
Jun 28 Javascript
react使用CSS实现react动画功能示例
May 18 Javascript
vue-router的hooks用法详解
Jun 08 Javascript
Angular短信模板校验代码
Sep 23 Javascript
在vue项目中引用Antv G2,以饼图为例讲解
Oct 28 Javascript
angularjs实现分页和搜索功能
Jan 03 #Javascript
vue引入ueditor及node后台配置详解
Jan 03 #Javascript
Node.js搭建小程序后台服务
Jan 03 #Javascript
基于js文件加载优化(详解)
Jan 03 #Javascript
jQuery 实现左右两侧菜单添加、移除功能
Jan 02 #jQuery
js 取消页面可以选中文字的功能方法
Jan 02 #Javascript
js阻止默认右键的下拉菜单方法
Jan 02 #Javascript
You might like
Zend Framework动作助手Url用法详解
2016/03/05 PHP
PHP处理二进制数据的实现方法
2016/06/13 PHP
PHP中检索字符串的方法分析【strstr与substr_count方法】
2017/02/17 PHP
mysql输出数据赋给js变量报unterminated string literal错误原因
2010/05/22 Javascript
JS动态获取当前时间,并写到特定的区域
2013/05/03 Javascript
node.js中的console.time方法使用说明
2014/12/09 Javascript
js点击文本框弹出可选择的checkbox复选框
2016/02/03 Javascript
Bootstrap3学习笔记(二)之排版
2016/05/20 Javascript
JavaWeb表单及时验证功能在输入后立即验证(含用户类型,性别,爱好...的验证)
2017/06/09 Javascript
详解在React中跨组件分发状态的三种方法
2018/08/09 Javascript
微信小程序 弹窗输入组件的实现解析
2019/08/12 Javascript
原生JavaScript创建不可变对象的方法简单示例
2020/05/07 Javascript
微信小程序动态评分展示/五角星展示/半颗星展示/自定义长度展示功能的实现
2020/07/22 Javascript
在Django的视图中使用数据库查询的方法
2015/07/16 Python
详解Python的Django框架中的Cookie相关处理
2015/07/22 Python
Python探索之修改Python搜索路径
2017/10/25 Python
Python使用cx_Oracle模块操作Oracle数据库详解
2018/05/07 Python
PHP实现发送和接收JSON请求
2018/06/07 Python
Python基于property实现类的特性操作示例
2018/06/15 Python
对python中两种列表元素去重函数性能的比较方法
2018/06/29 Python
Python爬虫之UserAgent的使用实例
2019/02/21 Python
简单介绍python封装的基本知识
2019/08/10 Python
python连接PostgreSQL数据库的过程详解
2019/09/18 Python
django使用多个数据库的方法实例
2021/03/04 Python
高中毕业的自我鉴定
2013/12/09 职场文书
学校庆元旦歌咏比赛主持词
2014/03/18 职场文书
2014党委书记四风问题对照检查材料思想汇报
2014/09/22 职场文书
店铺转让协议书(2014版)
2014/09/23 职场文书
乡镇镇长个人整改措施
2014/10/01 职场文书
2014年小学工作总结
2014/11/26 职场文书
2014高三学生考试作弊检讨书
2014/12/14 职场文书
中班教师个人总结
2015/02/05 职场文书
2015年乡镇科普工作总结
2015/05/13 职场文书
离婚上诉状范文
2015/05/23 职场文书
辞职信怎么写?你都知道吗?
2019/06/24 职场文书
python opencv检测直线 cv2.HoughLinesP的实现
2021/06/18 Python