>  기사  >  웹 프론트엔드  >  Sequlize를 사용하여 MySQL에 연결하는 노드 정보: 사용자 'xxx'@'localhost'_node.js에 대한 액세스가 거부되었습니다.

Sequlize를 사용하여 MySQL에 연결하는 노드 정보: 사용자 'xxx'@'localhost'_node.js에 대한 액세스가 거부되었습니다.

小云云
小云云원래의
2018-01-05 09:18:173477검색

이 글에서는 Sequlize를 사용하여 Mysql에 연결하고 'xxx'@'localhost' 사용자에 대한 액세스 거부 오류를 보고하는 관련 정보를 주로 소개합니다. 필요한 친구가 할 수 있는 내용을 자세히 소개합니다. 아래 내용을 참고하여 함께 배워 보시기 바랍니다. 모두에게 도움이 되기를 바랍니다.

머리말

최근 직장에서 문제가 발생했습니다. 문제는 다음과 같습니다.

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

Sequlize를 사용하여 MySQL 데이터에 연결할 때 Node에서 보고한 오류입니다. 핵심은 콜론 뒤의 오류를 살펴보는 것입니다. 접근이 거부되었습니다. 키는 접근 거부 오류입니다. 설명 데이터베이스 연결에 문제가 있습니다. 해당 작업 권한이 없거나 계정 비밀번호가 잘못되었습니다.

이렇게 하면 액세스 권한과 잘못된 계정 및 비밀번호라는 두 가지 측면에서 문제를 찾을 수 있습니다. 이는 시간 낭비일 뿐이므로 다른 측면에서도 문제를 찾는 것을 잊지 마세요.

1. 사용자 권한 문제

권한 문제는 사용자 인증을 확인한 후 권한 목록을 새로 고칠지 여부를 결정합니다. 즉, 사용자에게 권한을 부여하기 위해 Grant 명령을 사용한 후에는 플러시 권한 명령을 사용해야 합니다. 이는 많은 사람들이 무시하는 문제입니다.

사용자 인증에 문제가 없다면 mysql 서버를 다시 시작해 보세요. /etc/init.d/mysql restart 명령을 사용하여 mysql 서버를 다시 시작하십시오. 여기서는 Debain 시스템을 사용하고 있습니다.

다시 시작한 후에도 문제가 해결되지 않으면 데이터베이스 사용자 권한 문제가 아닐 수 있습니다.

2. 계정 비밀번호 문제

계정 비밀번호가 잘못되었습니다. 이 문제는 터무니없게 들리지만 개발 과정에서 많은 사람들이 이를 무시합니다. 왜 그런 말을 합니까? 저는 여러 시스템 환경에서 개발을 전환하기 때문에 config-lite 모듈을 사용하여 데이터베이스 매개변수를 구성합니다. config-lite 모듈을 사용하면 간단한 환경 변수 구성을 통해 다양한 매개변수 파일을 로드할 수 있습니다. 구체적인 사용법은 다음을 참조하십시오: 다양한 환경에서의 구성 파일 사용법.

여기서 문제가 발생합니다. 터미널을 열고 프로젝트 npm run test를 실행하세요. 테스트 실행 스크립트 NODE_ENV=testsupervisor --harmony -i views/ ./bin/www가 package.json 파일에 구성되어 있습니다. 다른 터미널을 열고 데이터베이스 동기화 명령을 실행합니다. 동기화 명령은 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;

그래서 데이터베이스를 동기화할 때, 항상 제목에서 오류가 보고되었지만 올바른 것으로 생각했습니다. 최종 확인 후 문제를 발견했습니다. 테스트 스크립트의 NODE_ENV 환경 변수는 현재 터미널을 열어 동기화하려는 경우에만 유효합니다. 데이터베이스를 사용하려면 다른 터미널을 다시 열어야 합니다. 그렇지 않으면 로드된 데이터베이스 매개변수가 일관되지 않게 됩니다. 이는 데이터베이스에 연결하는 데 사용된 사용자 이름과 비밀번호가 올바르지 않음을 의미합니다.

관련 권장 사항:

치명적인 오류에 대한 해결 방법: 정의되지 않은 함수 mysql_connect() 호출

PHP가 Mac에서 MySQL에 연결할 때 "No such file or Directory" 오류에 대한 해결 방법

php가 mysql에 연결됨 오류를 보고합니다. 해당 파일이나 디렉터리가 없습니다

위 내용은 Sequlize를 사용하여 MySQL에 연결하는 노드 정보: 사용자 'xxx'@'localhost'_node.js에 대한 액세스가 거부되었습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.