본문 바로가기
MySql

MySQL Sequelize로 MySQL에 연결할 수 없습니다.

by 베이스 공부 2020. 11. 21.
반응형

내 서버의 MySQL 데이터베이스에 연결하려고 할 때 지속적으로 SequelizeConnectionRefusedError 가 발생합니다.

로그인 자격 증명이 올 바르고 포트가 열려 있고 모든 것이 좋아 보이며 개발 환경에서 매력적으로 작동합니다.

부족한 배경 정보에 대해 죄송하지만 여기서는 어리 석습니다.이 문제의 원인이 무엇인지 정말 모르겠습니다.

이것은 mysql --version 의 출력입니다.

mysql  Ver 14.14 Distrib 5.5.43, for debian-linux-gnu (x86_64) using readline 6.3

이것이 제가 Sequelize를 초기화하는 데 사용하는 코드입니다. 사용하려는 테이블이 아직 존재하지 않지만이 문제와 관련이없는 것이 확실합니다. 루트 사용자로 로그인을 시도했지만 주사위가 없습니다. 여전히 동일한 오류가 발생합니다.

var sequelize = new Sequelize("database", username, password, {
    host: "localhost",
    dialect: "mysql",
    port: 3306,
    define: {
        paranoid: true
    }
});

var Model = sequelize.define("Model", {
    md5: {type: Sequelize.STRING(128)},
    ip: {type: Sequelize.STRING(256)},
    url: {type: Sequelize.STRING(1024)}
});

sequelize.sync();

이것은 노드가 Passenger 뒤에서 실행되는 Ubuntu 14.04에서 실행됩니다 (노드로 응용 프로그램을 직접 실행하면 오류가 표시되지만). 다른 PHP 애플리케이션이 데이터베이스에 연결되는 동일한 서버에서 nginx와 PHP를 실행하고 있습니다.

이 문제의 원인은 무엇입니까?

 

해결 방법

 


내가 필요한 것은 socketPath 키와 함께 mysql 모듈을 제공하는 것이 었습니다. 작동하도록 코드를 변경 한 방법은 다음과 같습니다.

var sequelize = new Sequelize("database", username, password, {
    host: "localhost",
    dialect: "mysql",
    logging: function () {},
    pool: {
        max: 5,
        min: 0,
        idle: 10000
    },
    dialectOptions: {
        socketPath: "/var/run/mysqld/mysqld.sock"
    },
    define: {
        paranoid: true
    }
});

 

참조 페이지 https://stackoverflow.com/questions/29866133

 

 

반응형

댓글