내 세상

[MySQL] Error: ER_CON_COUNT_ERROR: Too many connections 본문

Technical/MySQL

[MySQL] Error: ER_CON_COUNT_ERROR: Too many connections

sga8 2020. 5. 27. 19:36
728x90
반응형

Error: ER_CON_COUNT_ERROR: Too many connections

 

(참고: https://okky.kr/article/527331)

해당 링크에 의하면 3가지의 방법을 사용하여 문제를 해결할 수 있다고 함.

 

1. max connection세팅 보다 많은 request가 발생하는경우

    - 해결책 : max connection을 늘려서 해결

    - Linux 환경에서는 구글링하면 쉽게 방법을 찾을 수 있음.

    - Windows 환경 해결책

          1. cmd - "services.msc" 입력하여 MySQL 서비스를 찾음.

              ( 버전에 따라 다르지만, MySQL57 이런 식으로 되어 있음)

          2. MySQL 서비스를 찾은 후, 실행 파일 경로를 분석함.

              ( "실행 파일 경로" --defaults-file="my.ini와 같은 config 파일 경로" servicenames   의 형태로 구성됨)

          3. my.ini와 같은 config 파일 경로로 가서, 해당 파일을 실행시킴.

          4. 해당 파일에서 [mysqld] 아래 부분에 max_connections가 있다면 설정값을 필요에 따라 변경하고,

              없으면 max_connections=9999 이런식으로 추가해주면 됨.

          5. 수정 후 net stop MySQL57net start MySQL57 커맨드를 통해 재실행.

       (※ mysql 커맨드 라인에서 show variables like "%max_connections%"; 커맨드를 통해서 확인할 수 있음)

 

2. relese가 가끔 안되는 경우

     - 해결책: 데이터처리시 중간에 에러로 relase를 못하는 경우가 있으니 query후에 바로 release

    - 코드 적용 예시

db.getConnection(function(err, connection) {
    connection.query(
        "select * from ABC",
        (err, rows) => {
        if (err) {
            connection.release();
            throw err;
        } else {
            // query 결과에 대한 처리
        }
        }
    );
}

3. craetePool을 여러번하는경우

    - 해결책: 서버실행시 한번만 되는지 확인해보세요

    - 코드 적용 예시

import mysql from "mysql";

let dbconfig = require("../db-config.json");
let db = mysql.createPool(dbconfig);

module.exports = db;
728x90
반응형