1
하나의 서버에서 mysql 데이터베이스를 쿼리해야합니다. mysql 데이터베이스는 다른 네트워크에있다. 특정 서버에서이 네트워크에만 연결할 수 있습니다.Nodejs - mysql2 스트림 연결 및 원격 호스트
서버 1에서 서버 2로 터널을 만들고이 터널을 사용하여 mysql 데이터베이스에 연결해야합니다.
이것은 현재 코드입니다. 이렇게하면 서버 2의 로컬 mysql 서버에 연결할 수 있지만 원격 mysql 서버에는 연결할 수 없습니다. 대신 mysql.createConnection()
에 host
를 전달
var Client = require('ssh2').Client,
mysql = require('mysql2'),
var client = new Client();
var ssh = client.connect({
host: config.server_tunnel.dstHost,
port: 22,
username: config.server_tunnel.username,
privateKey: config.server_tunnel.privateKey
});
ssh.forwardOut('127.0.0.1', 12345, '127.0.0.1', 3306, function (err, stream) {
mysql.createConnection({
user: config.database.username,
password: config.database.password,
database: config.database.database,
stream: stream,
host: 'remote.host.com'
});
});
완벽한, 즉 지금 당신이 그것을 지적했습니다 총 의미가 있습니다. 고맙습니다. – CharliePrynn