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的函数重名看其初始化方式
Mar 08 Javascript
关于COOKIE个数与大小的问题
Jan 17 Javascript
由JavaScript中call()方法引发的对面向对象继承机制call的思考
Sep 12 Javascript
js FLASH幻灯片字符串中有连接符&的处理方法
Mar 01 Javascript
javascript每日必学之继承
Feb 23 Javascript
jquery实现焦点轮播效果
Feb 23 Javascript
解决vue组件props传值对象获取不到的问题
Jun 06 Javascript
vue中uni-app 实现小程序登录注册功能
Oct 12 Javascript
JS面向对象编程基础篇(一) 对象和构造函数实例详解
Mar 03 Javascript
理解JavaScript中的对象
Aug 25 Javascript
javascript实现点击按钮切换轮播图功能
Sep 23 Javascript
如何在Express4.x中愉快地使用async的方法
Nov 18 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正则
2006/07/07 PHP
IIS php环境配置PHP5 MySQL5 ZendOptimizer phpmyadmin安装与配置
2008/11/18 PHP
PHP采集相关教程之一 CURL函数库
2010/02/15 PHP
PHP常用编译参数中文说明
2014/09/27 PHP
Gird组件 Part-3:范例RSSFeed Viewer
2007/03/10 Javascript
JavaScript 继承的实现
2009/07/09 Javascript
jquery中输入验证中一个不错的效果
2010/08/21 Javascript
JavaScript设计模式之外观模式实例
2014/10/10 Javascript
探析浏览器执行JavaScript脚本加载与代码执行顺序
2016/01/12 Javascript
js实现canvas保存图片为png格式并下载到本地的方法
2017/08/31 Javascript
react-native fetch的具体使用方法
2017/11/01 Javascript
jq.ajax+php+mysql实现关键字模糊查询(示例讲解)
2018/01/02 Javascript
jQuery简单判断值是否存在于数组中的方法示例
2018/04/17 jQuery
vue-cli 使用axios的操作方法及整合axios的多种方法
2018/09/12 Javascript
Node.js web 应用如何封装到Docker容器中
2020/09/01 Javascript
[05:04]完美世界携手游戏风云打造 卡尔工作室地图界面篇
2013/04/23 DOTA
详尽讲述用Python的Django框架测试驱动开发的教程
2015/04/22 Python
python中将\\uxxxx转换为Unicode字符串的方法
2018/09/06 Python
Python双链表原理与实现方法详解
2020/02/22 Python
python实点云分割k-means(sklearn)详解
2020/05/28 Python
python中怎么表示空值
2020/06/19 Python
如何通过命令行进入python
2020/07/06 Python
Python extract及contains方法代码实例
2020/09/11 Python
Python 如何实现数据库表结构同步
2020/09/29 Python
video实现有声音自动播放的实现方法
2020/05/20 HTML / CSS
澳洲健康食品网上商店:Aussie Health Products
2018/06/15 全球购物
京剧自荐信
2014/01/26 职场文书
四年级数学教学反思
2014/02/02 职场文书
《中国的气候》教学反思
2014/02/23 职场文书
教师考核材料
2014/05/21 职场文书
西湖英语导游词
2015/02/06 职场文书
大专护理专业自荐信
2015/03/25 职场文书
幼儿园教师师德承诺书
2015/04/28 职场文书
焦裕禄纪念馆观后感
2015/06/09 职场文书
django学习之ajax post传参的2种格式实例
2021/05/14 Python
如何vue使用el-table遍历循环表头和表体数据
2022/04/26 Vue.js