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 相关文章推荐
tbody元素支持嵌套的注意方法
Mar 24 Javascript
JavaScript 滚轮事件使用说明
Mar 07 Javascript
DOM Scripting中的图片切换[兼容Firefox]
Jun 12 Javascript
通过js动态操作table(新增,删除相关列信息)
May 23 Javascript
JS应用正则表达式转换大小写示例
Sep 18 Javascript
通用javascript代码判断版本号是否在版本范围之间
Nov 29 Javascript
JS使用面向对象技术实现的tab选项卡效果示例
Feb 28 Javascript
详解从Node.js的child_process模块来学习父子进程之间的通信
Mar 27 Javascript
vue中如何实现后台管理系统的权限控制的方法示例
Sep 19 Javascript
详解如何使用nvm管理Node.js多版本
May 06 Javascript
微信小程序手动添加收货地址省市区联动
May 18 Javascript
原生js实现弹幕效果
Nov 29 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
PHP网页游戏学习之Xnova(ogame)源码解读(五)
2014/06/23 PHP
微信公众号模板消息群发php代码示例
2016/12/29 PHP
PHP实现添加购物车功能
2017/03/06 PHP
php如何修改SESSION的生存存储时间的实例代码
2017/07/05 PHP
记录Yii2框架开发微信公众号遇到的问题及解决方法
2018/07/20 PHP
PHP CURL实现模拟登陆并上传文件操作示例
2020/01/02 PHP
Extjs TriggerField在弹出窗口显示不出问题的解决方法
2010/01/08 Javascript
用apply让javascript函数仅执行一次的代码
2010/06/27 Javascript
AngularJS基础学习笔记之表达式
2015/05/10 Javascript
js实现具有高亮显示效果的多级菜单代码
2015/09/01 Javascript
JavaScript实现倒计时代码段Item1(非常实用)
2015/11/03 Javascript
javascript中不易分清的slice,splice和split三个函数
2016/03/29 Javascript
Angular客户端请求Rest服务跨域问题的解决方法
2017/09/19 Javascript
Vue集成Iframe页面的方法示例
2017/12/12 Javascript
jQuery实现参数自定义的文字跑马灯效果
2018/08/15 jQuery
Vue 列表页带参数进详情页的操作(router-link)
2020/11/13 Javascript
python访问纯真IP数据库的代码
2011/05/19 Python
Python中用pycurl监控http响应时间脚本分享
2015/02/02 Python
Python格式化压缩后的JS文件的方法
2015/03/05 Python
pygame学习笔记(1):矩形、圆型画图实例
2015/04/15 Python
用Python脚本来删除指定容量以上的文件的教程
2015/05/04 Python
Queue 实现生产者消费者模型(实例讲解)
2017/11/13 Python
Python+Redis实现布隆过滤器
2019/12/08 Python
python如何停止递归
2020/09/09 Python
Django Auth用户认证组件实现代码
2020/10/13 Python
假日旅行社实习自我鉴定
2013/09/24 职场文书
《在山的那边》教学反思
2014/02/23 职场文书
道德之星事迹材料
2014/05/03 职场文书
商务英语专业毕业生求职信
2014/07/06 职场文书
上课玩手机的检讨书
2014/10/01 职场文书
领导干部“四风”查摆问题个人整改措施
2014/10/28 职场文书
师范生见习报告范文
2014/11/03 职场文书
小学教师节活动总结
2015/03/20 职场文书
运动会观后感
2015/06/09 职场文书
2015秋季开学演讲稿范文
2015/07/16 职场文书
Python下opencv库的安装过程及问题汇总
2021/06/11 Python