Sequelizer를 사용하여 MySQL 데이터베이스에 연결하고 싶습니다. 지금 당장 Connection Refused Error가 발생합니다.터널 -ssh 모듈을 통한 sequelizer mysql 연결 시작
데이터베이스에 액세스하려면 SSH를 사용해야합니다. 여기 Mick Hansen에 따르면 https://github.com/sequelize/sequelize/issues/3753으로 SSH를 사용하는 한 가지 방법은 tunnel-ssh를 사용하여 터널을 설정 한 다음 Sequelizer를 시작하는 것입니다.
지금까지 성공하지 못했던 방법은 터널을 시작한 다음 터널이 열리면 Sequelizer가 인증되었는지 테스트합니다.
업데이트
- 호스트 : 디지털 오션
- CLI 성공 : 나는 디지털 오션 서버 2)에 1) SSH를 서버에서 MySQL과 3) 액세스에 루트 사용자로 모든 데이터베이스 정보를 로그인 할 수 있습니다.
- Sequel Pro : Sequel Pro를 사용하여 데이터베이스에 로그인 할 수도 있습니다.
- MySQL 127.0.0.1:3306 : mysql/my.cnf 파일을 기반으로 포트는 3306이고 바인드 주소는 127.0.0.1입니다. 구성 파일에는 skip-networking 대신에 localhost에서만 관련 정보를 듣는 것이 기본값입니다.
- socketPath -> 오류 연결 TCP에서 소켓으로 전환하는 것이이 유형의 문제에 대해 때때로 작동하는 것처럼 보였지만 시도했을 때 계속 오류가 발생했습니다.
- 이 오류 유형 - 은 "모든 구성된 인증 방법 실패" 및 도움을
감사합니다 "오류 연결이 거부!"
코드 :
내 설정은 위의 객체로 설정// sequelize config
var sequelize = new Sequelize('database', 'user', 'pass', {
host: '127.0.0.1',
dialect: 'mysql',
port: 3306,
pool: {
max: 10,
min: 0,
idle: 20000
}
});
// tunnel config
var config = {
user:'user',
host:'sshHost',
port:22,
dstHost:'127.0.0.1',
dstPort:3306,
srcHost:'127.0.0.1',
srcPort:3306,
localHost:'127.0.0.1',
localPort: 3306,
privateKey:require('fs').readFileSync('/path/to/key')
};
var tunnel = require('tunnel-ssh');
// initiate tunnel
tunnel(config, function (error, server) {
//....
if(error) {
console.error(error);
} else {
console.log('server:', server);
// test sequelize connection
sequelize
.authenticate()
.then(function(err) {
console.log('Connection established');
})
.catch(function(err) {
console.error('unable to establish connection', err);
})
}
})
가, 내가 "모든 구성 방법이 오류를 실패"얻는다.
내 구성을 아래로 변경하면 "Sequelize Error Connection Refused"( 오류)가 표시됩니다.
// tunnel config
var config = {
user:'user',
host:'sshHost',
port:22,
dstHost:'127.0.0.1',
dstPort:3306,
//srcHost:'127.0.0.1',
//srcPort:3306,
//localHost:'127.0.0.1',
//localPort: 3306,
privateKey:require('fs').readFileSync('/path/to/key')
};
코드의 sequelize init 비트를 표시 할 수 있습니까? –
@ code-jaff에게 감사의 말을 전하고, sequelize init 비트를 페이지 상단에 추가했습니다. –