참고자료
배경
노트북에서 MySQL을 설치하고 커넥션, DB을 노트북 MySQL에 생성했다.
어느날 집에서 데스크탑 PC로 서버 작업 및 데이터베이스 확인을 해야하는 상황이 생겼다.
기존 서버 코드는 Git을 이용해 가져올 수 있었지만 데이터베이스 환경은 가져올 수 없는 것 같았다.
이에 집에 있는 데스크탑 PC로 노트북 MySQL 원격 접속을 시도한다.
이 때, 노트북을 원격(Remote) 데스크탑PC를 로컬(Local)로 지칭하겠다.
문제해결 과정
$ ipconfig
우선 원격에서 CMD를 켜고 위 명령어를 통해 IP를 확인했다.
$ mysql -h 192.168.1.161 -u root -p
로컬에서 위 명령어를 입력하고 원격 MySQL의 비밀번호를 입력하여 원격 MySQL로 접속을 시도했다.
하지만 위와 같은 에러가 발생했다.
이는 원격에서 로컬 IP 주소에서의 접속을 명시적으로 허용하지 않았기 때문이다.
하긴 IP 주소 안다고 DB 접속되면 벌써 온 세상 DB는 다 털렸을듯
로컬(데스크탑PC) 세팅
$ ipconfig
로컬 IP 주소 접속을 허용하기 위해 로컬의 IP를 확인한다.
로컬 세팅 끝.
원격(노트북) 세팅
원격 MySQL을 접속한 후 좌측 사이드바에서 Administrator > Users and Privileges 클릭
Add Account 클릭 > Login Name, Limit to Hosts Matching, password, Confirm Password 입력 > Apply
이 때 각 입력값은 아래와 같다.
Login Name : 원격 접속 로그인 이름(원격 접속 명령어 입력시 사용)
Limit to Hosts Matching : 원격 접속을 허가할 IP(위에서 확인했던 호스트의 IP)
password : 원격 접속 시 비밀번호 (원격 접속 명령어 입력시 사용)
(선택) DB 원격 접속 시도해보기
$ mysql -h {원격 IP} -u {로그인 이름} -p
// 세미콜론을 꼭 붙여야한다.
$ show databases;
여기까지 마쳤다면 호스트에서 원격 접속은 가능하다.
하지만 데이터베이스를 열람 권한이 없기 때문에 모든 데이터베이스를 열람할 수 없다.
Schema Privileges > Add Entry...
Apply 클릭
위처럼 아무것도 선택 안하고 Apply를 클릭하면 자동으로 해당 유저에게 데이터베이스의 모든 권한을 부여한다.
원격 세팅 끝.
원격 접속
$ mysql -h {원격 IP} -u {로그인 이름} -p
// 세미콜론을 꼭 붙여야한다.
$ show databases;
로컬에서 원격 접속이 되는 것을 확인했다.
추가로 원격 접속한 MySQL의 모든 데이터베이스를 열람할 수 있는 것을 확인했다.
원격 접속 끝.
추가
Sequelize 데이터베이스 원격 접속
잘됨
MySQL Workbench 오류(원격 접속 불가)
어째서인지 MySQL Workbench에서는 원격 접속이 되지 않는 버그를 확인했다.
이에 아래 두가지 시도를 해보았지만 실패했다.
- 원격 MySQL의 my.ini 파일 > [mysqld] > bind-address 수정
- Windows Defender 방화벽 > 고급 설정 > 인바운드, 아웃바운드 > 새 규칙 생성(프로그램, 포트)
이는 추후 더 시도해볼 예정이다.
왜 안돼;
'백엔드 > MySQL' 카테고리의 다른 글
WSL 환경의 MySQL 원격 접속 + Sequelize 연동&마이그레이션 (0) | 2024.11.02 |
---|---|
[MySQL] MySQL CLI 명령어 정리 (0) | 2024.11.02 |
[MySQL] MySQL 설치 오류(설치했지만 CMD에서 버전 확인이 안됨) (2) | 2024.10.31 |