다른 컴퓨터에서 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 방화벽 -> 고급 설정에서 설정해주자.
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
'CS > Database' 카테고리의 다른 글
도커를 이용한 PostgreSQL (원격) <-> PostgreSQL (로컬) 연동 (10) | 2024.10.23 |
---|---|
MySQL 찍먹하기 !! (feat.pymysql) (2) | 2024.01.30 |
블로그의 정보
코딩하는 오리
Cori