외부 PC에서 서버내에 있는 MySQL에 접근하여 쿼리를 전달하는 방법이다.
우선, 선행 되어야 하는 것이 두 가지 있다.
- 우선 서버에서 MySQL에 포트포워딩이 되어 있어야 한다.
- 서버 MySQL 사용자 중 외부접근을 허용하는 사용자가 등록되어야 함.
1. 아래 링크는 우분투에서 포트포워딩 하는 명령어이다.
https://lsj31404.tistory.com/13?category=852242
방화벽, 포트
설치 $ sudo apt update && sudo apt install firewalld -y 버전확인 $ sudo firewall-cmd --version 방화벽의 모든 상태(포트 포워딩, 열린 포트 등)를 확인한다. firewall-cmd --list-all 포트 오픈 방화벽의 pu..
lsj31404.tistory.com
2. 서버가 우분투라면, 우분투 MySQL에서 외부 접근을 허용하는 방법은 아래 포스팅과 같음.
https://lsj31404.tistory.com/15?category=852241
리눅스 - MySQL 명령어 모음
우분투 환경, MySQL에서 기본적으로 많이 사용하는 명령어를 정리. 우선, MySQL을 설치한 홈 디렉토리로 이동. 1. mysql 실행. ~$ mysql 2. DB목록 확인. show databases; 3. 사용자 목록 확인. - 2번 결과에서 my..
lsj31404.tistory.com
아래부터 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라고 변경하면 해결된다.