MySQL 접속 허용 IP 설정하기

Photo by Dima Pechurin on Unsplash

3줄 요약

서버(Ubuntu)에 MySQL을 설치했다. 

노트북에서 MySQL에 접속이 안된다. 

해결 과정을 정리했다. 

 – 원격접속을 허용할 사용자를 user 테이블에 삽입한다. 

 – MySQL 설정 파일에 접속을 허용할 IP 대역을 재정의한다. 

  : 기본 설정은 로컬(127.0.0.1)만 정의한다. 

원격접속을 허용할 사용자를 user 테이블에 삽입하기

원격접속을 허용할 사용자를 아래와 같이 추가한다. 

1
2
3
4
5
6
7
8
9
10
11
mysql> INSERT INTO mysql.user (host, user, authentication_string, ssl_cipher, x509_issuer, x509_subject) VALUES (‘%’‘root’, password(‘password’), ,,);
Query OK, 1 row affected, 1 warning (0.00 sec)
 
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
 
mysql> GRANT ALL PRIVILEGES ON *.* TO ‘root’@‘%’;
Query OK, 0 rows affected (0.00 sec)
 
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
cs

접속 가능한 IP 대역 확인 방법

3306번 포트는 127.0.0.1, 즉 로컬에서만 접속이 가능한 상태이다. 

1
2
3
user@host:~$ netstat -an | grep 3306
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN
user@host:~$ 
cs

접속 허용 IP 대역 재정의 방법

설정 파일은 “/etc/mysql/mysql.conf.d/mysqld.cnf” 이다. 기본 설정은 아래와 같이 되어 있다. 

1
2
3
4
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
 
bindaddress            = 127.0.0.1
cs

bind-address를 통해 MySQL에 접속을 허용할 IP 대역을 재정의 할 수 있다. 모든 IP 대역에서 접속 가능하게 하려면, 아래와 같이 수정한다. 

1
bindaddress           = 0.0.0.0
cs

환경

ubuntu 18.04

MySQL 5.7.31

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤