Ubuntu 서버에 MySQL 설치를 완료했다.
그럼 외부에서 내 서버 MySQL DB 에 접속해보자.
먼저 port 번호를 변경하고 외부에서 접속할 수 있도록 서버에 MySQL 설정을 변경할 것이다.
1. MySQL 설정 변경
Ubuntu 에 접속.
$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
상기 명령어로 MySQL 설정 파일에 들어가 설정을 아래와 같이 변경해주자.
// 주석 해제 후 수정
port = 3333
// 주석처리
# bind-address = 127.0.0.1
# mysqlx-bind-address = 127.0.0.1
포트변경을 완료했고 외부 접속을 위해 서버 local 에 binding 되어있는 bind-address 들을 모두 주석처리 해주었다.
2. MySQL 재시작
$ sudo service mysql restart
$ sudo service mysql status
status 확인하여 active 상태까지 확인.
3. 포트 방화벽 설정
MySQL 의 기본 포트는 방화벽을 닫아주고 외부 접속용 포트인 3333 포트에 대한 방화벽을 해제해주자.
$ sudo ufw deny 3306 && sudo ufw allow 3333
&& 을 사용해 두개의 명령문을 한번에.
그다음 외부 workbench 에서 접속 test 수행 시 Connection Success 뜨면 성공.
추가적으로..
4. % 가 아닌 특정 외부 IP 에만 접속 권한 부여
여러 외부 아이피( % )가 아닌 특정 아이피만 상기 DB 에 접속하도록 설정해줄 수 있다.
먼저 Ubuntu 서버에 접속해준다.
그다음 root 계정으로 MySQL 에 접속.
$ sudo mysql -u root -p
그다음 특정 아이피로 권한 부여. 이때 외부 workbench 를 사용하는 로컬의 public ip 를 알아야 한다.
네이버 접속 후 내 아이피 검색하면 IP 주소 조회 가능.
그다음 아래 SQL 을 통해 상기 IP 를 등록.
CREATE USER '<계정 ID>'@'123.123.123.%' IDENTIFIED BY '비밀번호';
# or
CREATE USER '<계정 ID>'@'123.123.123.123' IDENTIFIED BY '비밀번호';
GRANT ALL PRIVILEGES ON *.* to '<계정 ID>'@'123.123.123.%';
# or
GRANT ALL PRIVILEGES ON *.* to '<계정 ID>'@'123.123.123.123';
이러면 특정 IP 에 대한 접속만 허용된다.
# 유저 보기
USE mysql;
SELECT user, host FROM user;
# 유저 권한 보기
SHOW GRANTS FOR '<계정 ID>'@'123.123.123.%';
SHOW GRANTS FOR CURRENT_USER;
'Work Box (Ubuntu Server) > Ubuntu - MySQL' 카테고리의 다른 글
[Ubuntu][MySQL] 계정 생성 및 권한 설정 (0) | 2023.06.11 |
---|---|
[Ubuntu][MySQL] 우분투에 MySQL 설치하기 (0) | 2023.06.11 |