외부 PC에서 서버내에 있는 MySQL에 접근하여 쿼리를 전달하는 방법이다.
우선, 선행 되어야 하는 것이 두 가지 있다.
- 우선 서버에서 MySQL에 포트포워딩이 되어 있어야 한다.
- 서버 MySQL 사용자 중 외부접근을 허용하는 사용자가 등록되어야 함.
1. 아래 링크는 우분투에서 포트포워딩 하는 명령어이다.
https://lsj31404.tistory.com/13?category=852242
2. 서버가 우분투라면, 우분투 MySQL에서 외부 접근을 허용하는 방법은 아래 포스팅과 같음.
https://lsj31404.tistory.com/15?category=852241
아래부터 NodeJS를 이용하여 외부에 있는 MySQL에 접근하는 방법.
1. js파일 생성.
2. mysql 모듈 생성.
var mysql = require('mysql');
3. DB 연결.
var connection = mysql.createConnection({
host: '접근할 서버의 IP',
port: '서버 포트',
user: '외부 접근 허용한 user 이름',
password: '유저 비밀번호',
database: '접근할 DB'
})
4. DB 연결 확인, 확인 되면 "Database is connected!" 출력
아니면 에러 발생.
connection.connect(function(err){
if(!err) {
console.log("Database is connected!");
} else {
console.log("Error connecting database...nn :" + err);
}
})
- 주의사항: 4번까지 입력 후, 아래와 같은 에러 발생한 경우.
Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
- 1번에서 진행한 mysql모듈 설치를 mysql2라고 변경하면 해결된다.