Nodejs 연결 mysql 오류

WBOY
풀어 주다: 2023-05-25 12:58:08
원래의
1390명이 탐색했습니다.

Node.js는 효율적이고 빠르며 안정적인 서버측 프로그래밍 언어로, 서버측 데이터를 실시간으로 업데이트하고 처리하는 데 매우 효과적입니다. MySQL은 인터넷의 데이터 저장 분야와 기업용 소프트웨어에서 널리 사용되는 관계형 데이터베이스 관리 시스템입니다. Node.js와 MySQL의 조합은 서버 측 데이터 저장 및 관리를 실현할 수 있지만 실제 개발 과정에서는 몇 가지 문제가 발생할 수 있습니다. 이 기사에서는 MySQL에 연결할 때 node.js 오류가 발생하는 일반적인 문제를 소개합니다.

1. 오류 성능

Node.js를 사용하여 MySQL에 연결할 때 다음 오류 성능이 발생할 수 있습니다.

  1. Error: connect ETIMEDOUT
  2. Error: connect ECONNREFUSED
  3. Error: ER_ACCESS_DENIED_ERROR
  4. Error: Cannot quit

호출 후 대기열에 핸드셰이크 추가 또는 사용자 요청이 느립니다. Node.js가 MySQL에 연결할 때 연결 시간 초과 시간을 지정하고 지정된 시간 내에 연결을 설정해야 합니다. 그렇지 않으면 연결 ETIMEDOUT 오류가 보고됩니다.

  1. 연결 거부됨

오류: ECONNREFUSED 연결

이 오류는 일반적으로 호스트 이름, 사용자 이름, 비밀번호 등 MySQL 연결과 관련된 매개변수를 잘못 설정하여 발생합니다. 이 오류는 일반적으로 서버에 원격으로 연결할 때 발생합니다. 서버가 방화벽을 설정했거나 특정 IP 주소 또는 네트워크 세그먼트만 MySQL에 연결할 수 있도록 지정했기 때문일 수 있습니다.

  1. 권한 확인 실패

오류: ER_ACCESS_DENIED_ERROR

이 오류는 일반적으로 잘못된 사용자 이름이나 비밀번호 입력, 권한 부족, 서버에서 특정 권한 금지로 인해 발생합니다. 이 오류는 입력한 사용자 이름이나 비밀번호가 올바르지 않은 경우 MySQL에 연결할 때 발생합니다. 이 오류는 사용자에게 데이터베이스에 액세스할 수 있는 충분한 권한이 없을 때도 발생합니다.

  1. 애플리케이션 오류

오류: quit 호출 후 핸드셰이크를 대기열에 추가할 수 없습니다.

이 오류는 일반적으로 애플리케이션 오류로 인해 발생합니다. 애플리케이션이 종료되기 전에 MySQL 연결이 닫혔기 때문일 수 있습니다. 이런 경우에는 커넥션 풀에 있는 커넥션이 제대로 닫혔는지, 아니면 다른 문제가 있는지 주의 깊게 확인해야 합니다.

    3. 오류 해결 방법
연결 시간 초과

연결 시간 초과 오류를 방지하려면 Node.js에서 확인 대기 시간과 연결 시간 초과를 설정해야 합니다. 일반적으로 이 값은 5초~10초 범위로 설정됩니다. 다음은 MySQL에 연결하기 위한 예제 코드 조각입니다.

const mysql = require('mysql');

    const Connection = mysql.createConnection({
  1. 호스트 : 'localhost',
  2. 사용자 : 'root',
비밀번호 : 'password',

데이터베이스 : 'mydatabase',

connectTimeout: 10000,

acquireTimeout: 10000

});


connection.connect((err) => {
if (err) throw err;
console.log (' 연결됨!');
});


연결 거부됨


연결 거부 오류는 올바른 호스트 이름, 사용자 이름 및 비밀번호를 설정하여 해결할 수 있습니다. 원격 서버에 연결하는 경우 연결의 IP 주소와 포트 번호가 올바른지, 서버에 방화벽이 설정되어 있지 않거나 특정 IP 주소 또는 네트워크 세그먼트에 대한 액세스를 제한하는지 확인해야 합니다. 다음은 MySQL에 연결하기 위한 예제 코드 조각입니다.

const mysql = require('mysql');

    const Connection = mysql.createConnection({
  1. host : 'remote-server.com',
  2. port : '3306 ',
사용자 : 'root',

비밀번호 : 'password',

데이터베이스 : 'mydatabase'

});

connection.connect((err) => {
if (err) throw err;
console. log( 'Connected!');
});


권한 확인 실패


MySQL에 연결할 때 권한 확인 실패 오류가 발생하면 입력한 사용자 이름과 비밀번호가 올바른지 확인하고 사용자는 데이터베이스 권한에 액세스할 수 있습니다. 루트 사용자를 사용하는 경우 MySQL 서버는 루트 계정을 사용하기 위해 특정 호스트에만 로그인하는 규칙을 설정했을 수 있다는 점에 유의해야 합니다.

애플리케이션 오류
  1. MySQL에 연결할 때 애플리케이션 오류 상황이 발생하면 연결 풀의 연결이 닫혀 있는지 여부와 기타 가능한 문제를 확인해야 합니다. 다음은 연결 풀을 올바르게 닫는 데 사용할 수 있는 샘플 코드입니다.

const mysql = require('mysql');

const pool = mysql.createPool({
    connectionLimit : 10,
  1. host: 'localhost',
  2. 사용자 : 'root',
비밀번호 : 'password',

데이터베이스 : 'mydatabase'

});


pool.getConnection((err, 연결) => {
console.log('ID로 연결됨', 연결 .threadId) ;

connection.query('SELECT * FROM users', 함수(오류, 결과, 필드) {

if (error) throw error;

console.log('The solution is: ', results);

// Connection is automatically released when query resolves
connection.release();
로그인 후 복사

});
});

결론적으로 Node.js에서 MySQL 오류에 연결하는 것은 까다로운 작업일 수 있지만 문제의 근본 원인을 파악하고 해결하려고 노력할 수 있는 한 이러한 문제는 매우 빠르게 해결할 수 있습니다. 개발 중에 문제가 발생하면 코드를 디버깅하고 테스트하여 문제를 찾아 해결할 수 있으며, 이는 보다 안정적이고 효율적인 애플리케이션을 구축하는 데 도움이 됩니다.

위 내용은 Nodejs 연결 mysql 오류의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿