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 相关文章推荐
了解jQuery技巧来提高你的代码(个人觉得那个jquery的手册很不错)
Feb 10 Javascript
jquery sortable的拖动方法示例详解
Jan 16 Javascript
jquery实现的一个文章自定义分段显示功能
May 23 Javascript
js+html5实现canvas绘制圆形图案的方法
Jun 05 Javascript
JavaScript Array对象详解
Mar 01 Javascript
纯JS代码实现气泡效果
May 04 Javascript
javascript表单事件处理方法详解
May 15 Javascript
滚动条的监听与内容随着滚动条动态加载的实现
Feb 08 Javascript
javascript将url解析为json格式的两种方法
Aug 18 Javascript
浅谈JS和jQuery的区别
Mar 27 jQuery
js判断复选框是否选中的方法示例【基于jQuery】
Oct 10 jQuery
Weex开发之地图篇的具体使用
Oct 16 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计算日期相差天数实例分析
2016/02/23 PHP
Zend Framework实现自定义过滤器的方法
2016/12/09 PHP
Laravel5.* 打印出执行的sql语句的方法
2017/07/24 PHP
用js 让图片在 div或dl里 居中,底部对齐
2008/01/21 Javascript
JQuery做的一个简单的点灯游戏分享
2014/07/16 Javascript
JQuery入门基础小实例(1)
2015/09/17 Javascript
jQuery实现图片预加载效果
2015/11/27 Javascript
BootStrap.css 在手机端滑动时右侧出现空白的原因及解决办法
2016/06/07 Javascript
Vue.js列表渲染绑定jQuery插件的正确姿势
2017/06/29 jQuery
Angular 2.0+ 的数据绑定的实现示例
2017/08/09 Javascript
JavaScript实现打印星型金字塔功能实例分析
2017/09/27 Javascript
vue 实现剪裁图片并上传服务器功能
2018/03/01 Javascript
详解如何在微信小程序开发中正确的使用vant ui组件
2018/09/13 Javascript
Electron-vue脚手架改造vue项目的方法
2018/10/22 Javascript
react-native聊天室|RN版聊天App仿微信实例|RN仿微信界面
2019/11/12 Javascript
python抓取京东价格分析京东商品价格走势
2014/01/09 Python
Python程序设计入门(4)模块和包
2014/06/16 Python
搞笑的程序猿:看看你是哪种Python程序员
2015/06/12 Python
Python中防止sql注入的方法详解
2017/02/25 Python
numpy向空的二维数组中添加元素的方法
2018/11/01 Python
利用Python检测URL状态
2019/07/31 Python
python单向循环链表原理与实现方法示例
2019/12/03 Python
kafka监控获取指定topic的消息总量示例
2019/12/23 Python
在 Pycharm 安装使用black的方法详解
2020/04/02 Python
python中使用input()函数获取用户输入值方式
2020/05/03 Python
Pandas把dataframe或series转换成list的方法
2020/06/14 Python
Manuka Doctor英国官网:真正的麦卢卡蜂蜜和护肤品
2018/10/26 全球购物
AutoShack.com加拿大:北美主要的汽车零部件零售商
2019/07/24 全球购物
Piercing Pagoda官网:耳环、戒指、项链、手链等
2020/09/28 全球购物
教师通用专业自荐书范文
2014/02/11 职场文书
工程采购员岗位职责
2014/03/09 职场文书
会计专业求职信范文
2014/03/16 职场文书
初中生操行评语大全
2014/04/24 职场文书
校长师德师风自我剖析材料
2014/09/29 职场文书
邹越演讲观后感
2015/06/15 职场文书
互联网创业商业模式以及赚钱法则有哪些?
2019/10/12 职场文书