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实现表格动态分页实现代码
Jun 21 Javascript
JQuery验证工具类搜集整理
Jan 16 Javascript
jquery分页插件jpaginate在IE中不兼容问题
Apr 22 Javascript
Shell脚本实现Linux系统和进程资源监控
Mar 05 Javascript
浅析JavaScript中的array数组类型系统
Jul 18 Javascript
移动端翻页插件dropload.js(支持Zepto和jQuery)
Jul 27 Javascript
javascript prototype原型详解(比较基础)
Dec 26 Javascript
轻松理解vue的双向数据绑定问题
Oct 30 Javascript
node版本管理工具n包使用教程详解
Nov 09 Javascript
Vue 处理表单input单行文本框的实例代码
May 09 Javascript
Vue程序化的事件监听器(实例方案详解)
Jan 07 Javascript
Vue+penlayers实现多边形绘制及展示
Dec 24 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
PHP脚本的10个技巧(8)
2006/10/09 PHP
优化WordPress的Google字体以加速国内服务器上的运行
2015/11/24 PHP
PHP实现批量删除(封装)
2017/04/28 PHP
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
php中访问修饰符的知识点总结
2019/01/27 PHP
js动态添加表格数据使用insertRow和insertCell实现
2014/05/22 Javascript
jQuery中:header选择器用法实例
2014/12/29 Javascript
Javascript核心读书有感之词法结构
2015/02/01 Javascript
jQuery实现本地预览上传图片功能
2016/01/08 Javascript
JS提示:Uncaught SyntaxError:Unexpected token ) 错误的解决方法
2016/08/19 Javascript
jquery实现异步加载图片(懒加载图片一种方式)
2017/04/24 jQuery
jQuery实现鼠标滑过预览图片大图效果的方法
2017/04/26 jQuery
JavaScript中使用参数个数实现重载功能
2017/09/01 Javascript
JavaScript之创意时钟项目(实例讲解)
2017/10/23 Javascript
bootstrap实现二级下拉菜单效果
2017/11/23 Javascript
详解Js里的for…in和for…of的用法
2019/03/28 Javascript
使用vue重构资讯页面的实例代码解析
2019/11/26 Javascript
解决echarts中横坐标值显示不全(自动隐藏)问题
2020/07/20 Javascript
javascript的hashCode函数实现代码小结
2020/08/11 Javascript
[22:20]初生之犊-TI4第5名LGD战队纪录片
2014/08/13 DOTA
Python中使用urllib2模块编写爬虫的简单上手示例
2016/01/20 Python
python魔法方法-自定义序列详解
2016/07/21 Python
python图书管理系统
2020/04/05 Python
python删除列表元素的三种方法(remove,pop,del)
2019/07/22 Python
Python字典生成式、集合生成式、生成器用法实例分析
2020/01/07 Python
Python faker生成器生成虚拟数据代码实例
2020/07/20 Python
CSS3 icon font完全指南(CSS3 font 会取代icon图标)
2013/01/06 HTML / CSS
欧舒丹美国官网:L’Occitane美国
2018/02/23 全球购物
Ibood荷兰:互联网每日最佳在线优惠
2019/02/28 全球购物
学生会干部自荐信
2014/02/04 职场文书
公司接待方案
2014/03/08 职场文书
销售员岗位职责
2015/02/10 职场文书
仙境之桥观后感
2015/06/16 职场文书
Python实战之用tkinter库做一个鼠标模拟点击器
2021/04/27 Python
使用jpa之动态插入与修改(重写save)
2021/11/23 Java/Android
电脑关机速度很慢怎么办 提升电脑关机速度设置教程
2022/04/08 数码科技