Home > Web Front-end > JS Tutorial > body text

About Node using Sequlize to connect Mysql error: Access denied for user 'xxx'@'localhost'_node.js

小云云
Release: 2018-01-05 09:18:17
Original
3420 people have browsed it

This article mainly introduces to you the relevant information about Node using Sequlize to connect Mysql error: Access denied for user 'xxx'@'localhost'. The article introduces it in detail through sample code. Friends who need it can refer to it. The following is Come and learn with the editor, I hope it can help everyone.

Preface

I recently encountered a problem at work. The problem is as follows:

Unhandled rejection SequelizeAccessDeniedError: Access denied for user 'lupeng'@'localhost' (using password: YES)
Copy after login

This is an error reported by Node when using Sequlize to connect to Mysql data. The key is to look at the error after the colon. : Access denied. The key is the access denied error, which means there is a problem with the database connection. The database connection access is denied, either because there is no corresponding operation permission, or the account password is wrong.

This locates the problem on two points: access permissions and incorrect account and password. Don’t forget to look for problems in other aspects, as that will only be a waste of time.

1. User permission issues

Permission issues start with the database. After confirming user authorization, whether to refresh the permission list. That is to say, after using the Grant command to authorize a user, you should use the flush privileges command. This is an issue that many people ignore.

If there is no problem with user authorization, try restarting the mysql server. Use the command /etc/init.d/mysql restart to restart the mysql server. The restart command may be different in different Linux versions. I am using the Debain system here.

If the problem is not solved after restarting, then it may not be a problem with the database user permissions.

2. Account password issue

The account password is incorrect. This question sounds ridiculous, but during the development process, many people will ignore it. Why do you say that? I use the config-lite module to configure database parameters, because I switch development in multiple system environments. Using the config-lite module can load different parameter files through simple environment variable configuration. For specific usage, please refer to: Configuration file usage in different environments.

My problem arises here. Open a terminal and run the project npm run test. The test running script is configured in the package.json file NODE_ENV=test supervisor --harmony -i views/ ./bin/www . Open another terminal and run the database synchronization command. The synchronization command is written separately in a js script. The data connection method (general) is quoted in the script. The connection method is as follows:

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;
Copy after login

So in synchronizing the database Sometimes, the error is always reported as the title, but I think it is correct. After a final check, I found the problem: the NODE_ENV environment variable in the test script is only valid in the current terminal. If you want to open another terminal to synchronize the database, you need to Set the environment variables in a separate terminal. Otherwise, the loaded database parameters will be inconsistent, which means that the username and password used to connect to the database are incorrect.

Related recommendations:

Solution to PHP connection MySQL error: Fatal error: Call to undefined function mysql_connect()

Solution to the error "No such file or directory" reported when PHP connects to MySQL under Mac

The error message "No such file or directory" reported when PHP connects to mysql

The above is the detailed content of About Node using Sequlize to connect Mysql error: Access denied for user 'xxx'@'localhost'_node.js. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!