소소한 컴퓨터 이야기

다른 컴퓨터에서 MySQL 서버 원격 접속 설정하기

by Cori

해당 포스트는 본인 PC에서 생성한 MySQL 서버 데이터베이스에 다른 PC를 사용해 원격 접속할 수 있도록 설정하는 
방법에 대해 다루고 있으며, 이는 동일한 내부망 환경에서 진행된 것임을 알려드립니다.
(사용하고 있는 네트워크 환경이 다를 경우 적용되지 않을 수 있음 !!) 


MySQL

1. MySQL 환경변수 설정 

- mysqld.exe 파일이 있는 경로를 복사해서 시스템 환경변수 ($PATH)에 추가해주기 

 
2. MySQL 설정 

1) mysql 접속
$ mysql -h[ip주소] -u [사용자 이름] -p
$ mysql -h 192.168.0.146 -u cori -p

 

2) mysql 계정 설정 
$ use mysql;   # mysql 데이터베이스 사용 
$ SELECT host, user FROM user;
$ grant all privileges on *.* to 'root'@'%';
$ flush privileges;
 
$ SHOW GRANTS FOR 'root'@'localhost';
$ SHOW GRANTS FOR CURRENT_USER;

# grant privileges 막히면 외부 접근 권한 있는 root 계정 만들어 준 후 부여
$ create user 'root'@'%' identified by 'asdf';
 
3) 방화벽 설정 
ubuntu에서는 mysqld.cnf 파일의 bind-address 127.0.0.1 -> 0.0.0.0으로 수정하라고 나와 있는데, Windows에서는 해당 파일 x 
mysqld.cnf 파일이 ProgramData/my.ini 파일이라고 볼 수 있는데, 해당 파일에는 bind-address 부분이 없다.
방화벽을 설정해주자. 제어판 -> 시스템 및 보안 -> Windows Defender 방화벽 -> 고급 설정에서 설정해주자.  

프로그램 경로에서 mysqld.exe 파일을 찾아서 설정해주기

3. MySQL 다시 시작하기 

Window 환경의 경우 윈도우 + R -> services.msc 입력 후 MySQL80 프로그램 -> 마우스 오른쪽 버튼  다시 시작 클릭 
 

4. 연결 상태 확인


이렇게 해도 다른 컴퓨터에서 서버 내 MySQL에 접속이 되지 않았는데, 다음과 같이 계정을 생성해주니 접속이 되었다. 
* localhost, % 두 가지 모두에 대해 설정해줘야 함 !! 
 
$ CREATE USER 'username'@'localhost' IDENTIFIED BY 'password'; 
$ GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' WITH GRANT OPTION; 
$ CREATE USER 'username'@'%' IDENTIFIED BY 'password'; 
$ GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION; 
$ FLUSH PRIVILEGES;

 
Ref.

https://stackoverflow.com/questions/1559955/host-xxx-xx-xxx-xxx-is-not-allowed-to-connect-to-this-mysql-server
https://yourhyeony.tistory.com/22

블로그의 정보

코딩하는 오리

Cori

활동하기