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 25 Javascript
JavaScript的模块化:封装(闭包),继承(原型) 介绍
Jul 22 Javascript
javascript 函数声明与函数表达式的区别介绍
Oct 05 Javascript
jQuery焦点图切换简易插件制作过程全纪录
Aug 27 Javascript
javascript中callee与caller的区别分析
Apr 20 Javascript
JavaScript保存并运算页面中数字类型变量的写法
Jul 06 Javascript
JQuery实现级联下拉框效果实例讲解
Sep 17 Javascript
Node.js插件安装图文教程
May 06 Javascript
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
Dec 15 Javascript
Bootstrap table使用方法记录
Aug 23 Javascript
javascript连接mysql与php通过odbc连接任意数据库的实例
Dec 27 Javascript
解决npm管理员身份install时出现权限的问题
Mar 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 in_array 函数使用说明与in_array需要注意的地方说明
2010/04/13 PHP
thinkphp 一个页面使用2次分页的实现方法
2013/07/15 PHP
laravel Task Scheduling(任务调度)在windows下的使用详解
2019/10/22 PHP
极酷的javascirpt,让你随意编辑任何网页
2007/02/25 Javascript
xtree.js 代码
2007/03/13 Javascript
自己整理的一个javascript日期处理函数
2010/10/16 Javascript
真正的JQuery.ajax传递中文参数的解决方法
2011/05/28 Javascript
ajax请求乱码的解决方法(中文乱码)
2014/04/10 Javascript
JavaScript数据类型检测代码分享
2015/01/26 Javascript
JavaScript实现标题栏文字轮播效果代码
2015/10/24 Javascript
APP中javascript+css3实现下拉刷新效果
2016/01/27 Javascript
深入理解关于javascript中apply()和call()方法的区别
2016/04/12 Javascript
jQuery拖拽通过八个点改变div大小
2020/11/29 Javascript
移动端Ionic App 资讯上下循环滚动的实现代码(跑马灯效果)
2017/08/29 Javascript
jQuery实现定时隐藏对话框的方法分析
2018/02/12 jQuery
vue.js编译时给生成的文件增加版本号
2018/09/17 Javascript
JS+html5实现异步上传图片显示上传文件进度条功能示例
2019/11/09 Javascript
详解Typescript里的This的使用方法
2021/01/08 Javascript
跟老齐学Python之用Python计算
2014/09/12 Python
Python中跳台阶、变态跳台阶与矩形覆盖问题的解决方法
2018/05/19 Python
python3实现163邮箱SMTP发送邮件
2018/05/22 Python
python读取hdfs上的parquet文件方式
2020/06/06 Python
Python 如何调试程序崩溃错误
2020/08/03 Python
如何使用PyCharm引入需要使用的包的方法
2020/09/22 Python
python代码实现猜拳小游戏
2020/11/30 Python
利用HTML5 Canvas制作键盘及鼠标动画的实例分享
2016/03/15 HTML / CSS
墨西哥巴士车票在线购买:ClickBus
2018/03/27 全球购物
应聘医学检验人员自荐信
2013/09/27 职场文书
急诊科护士自我鉴定
2013/10/14 职场文书
企业厂长岗位职责
2013/12/17 职场文书
高中毕业自我鉴定
2013/12/22 职场文书
商务英语求职自荐信范文
2013/12/24 职场文书
团队精神演讲稿
2013/12/31 职场文书
西双版纳导游词
2015/02/03 职场文书
为自己工作观后感
2015/06/11 职场文书
写好求职信的技巧解密
2019/05/14 职场文书