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 相关文章推荐
如何简单地用YUI做JavaScript动画
Mar 10 Javascript
toString()一个会自动调用的方法
Feb 08 Javascript
常见表单重复提交问题整理及解决方法
Nov 13 Javascript
Jquery修改页面标题title其它JS失效的解决方法
Oct 31 Javascript
js实现滚动条滚动到页面底部继续加载
Dec 19 Javascript
jQuery添加options点击事件并传值实例代码
May 18 Javascript
javascript数组遍历的方法实例分析
Sep 13 Javascript
详解JS几种变量交换方式以及性能分析对比
Nov 25 Javascript
jQuery插件HighCharts绘制简单2D柱状图效果示例【附demo源码】
Mar 21 jQuery
解决vue中虚拟dom,无法实时更新的问题
Sep 15 Javascript
探索node之事件循环的实现
Oct 30 Javascript
vue在图片上传的时候压缩图片
Nov 18 Vue.js
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
mysq GBKl乱码
2006/11/28 PHP
PHP根据传来的16进制颜色代码自动改变背景颜色
2014/06/13 PHP
mysqli扩展无法在PHP7下升级问题的解决
2019/09/10 PHP
jQuery操作select的实例代码
2012/06/14 Javascript
ajax上传时参数提交不更新等相关问题
2012/12/11 Javascript
window.location.reload()方法刷新页面弹出要再次显示该网页对话框
2013/04/24 Javascript
Seajs的学习笔记
2014/03/04 Javascript
详解js闭包
2014/09/02 Javascript
javascript类型系统 Window对象学习笔记
2016/01/07 Javascript
jQuery+canvas实现的球体平抛及颜色动态变换效果
2016/01/28 Javascript
基于javascript实现数字英文验证码
2017/01/25 Javascript
NodeJS搭建HTTP服务器的实现步骤
2018/10/12 NodeJs
详解vue-cli 脚手架 安装
2019/04/16 Javascript
js实现录音上传功能
2019/11/22 Javascript
vue实现购物车案例
2020/05/30 Javascript
[04:22]DOTA2上海特级锦标赛主赛事第四日TOP10
2016/03/06 DOTA
[01:14]英雄,所敬略同——2018完美盛典宣传视频4K
2018/12/05 DOTA
Python文件夹与文件的操作实现代码
2014/07/13 Python
python获得两个数组交集、并集、差集的方法
2015/03/27 Python
Python编程中的异常处理教程
2015/08/21 Python
python基于隐马尔可夫模型实现中文拼音输入
2016/04/01 Python
Python使用logging结合decorator模式实现优化日志输出的方法
2016/04/16 Python
python2.7到3.x迁移指南
2018/02/01 Python
python 使用递归回溯完美解决八皇后的问题
2020/02/26 Python
解决更改AUTH_USER_MODEL后出现的问题
2020/05/14 Python
HTML5中的进度条progress元素简介及兼容性处理
2016/06/02 HTML / CSS
美国在线家居装饰店:Belle&June
2018/10/24 全球购物
旅游管理专业学生求职信
2013/09/28 职场文书
火车的故事教学反思
2014/02/11 职场文书
五一手机促销方案
2014/03/08 职场文书
大学生标准自荐书
2014/06/15 职场文书
感恩教育月活动总结
2014/07/07 职场文书
催款律师函范文
2015/05/27 职场文书
亮剑观后感600字
2015/06/05 职场文书
python 实现体质指数BMI计算
2021/05/26 Python
TS 类型收窄教程示例详解
2022/09/23 Javascript