[MariaDB] 4. 외부 IP에서 로컬에 외부접속(127.0.0.1) 허용 for Mac


맥북에서 외부 IP에서 로컬에 외부접속 허용하는 포스팅이다. 그렇다 이게 자주 가끔하면 매번 모른다. 바보인가 싶다. 쉽게 말하면 맥북환경에서 처음 로컬에 MySQL/MariaDB 설치해서 127.0.0.1 로 접근 해주는 포스팅이다.

본인은 Mac OS에서 Homebrew 로 MariaDB 10.5 이상을 설치한 경우이다.



1. MySQL/MariaDB 접속 허용

MySQL을 설치하면 기본적으로 로컬(localhost)에서만 접속이 가능하고 외부에서는 접속이 불가능하다. 그래서 DB Tool로 접속시에 localhost는 되지만 127.0.0.1 은 안된다.

이미지로 설명하면 이와 같다.

mariadb_grant_ip_02


1-1. my.cnf 설정파일 수정

  • /usr/local/etc/my.cnf

bind-address=0.0.0.0 #앞에 #을 붙여 주석처리


하튼~

우선 나는 개인 로컬에서 mysql user Id를 root로 하지만 실제에서는 root가 아닌 아이디를 설정 사용하는 것이 좋다. mysql에 접속한 후에 아래 포스팅 내용에 따라 실행하면 된다.


1-2. Macbook IP 확인


localhost의 IP인 127.0.0.1 IP가 아닌 MacBook의 실제 IP를 알고 계정에 외부접속 IP로 권한을 부여해야한다.


1-3. Terminal로 IP 확인


$ ifconfig | grep inet


mariadb_grant_ip_03



1-4. Finder 시스템환경으로 확인


Finder > 시스템 환경설정 > 네트워크

mariadb_grant_ip_04



Homebrew MariaDB to listen ports 확인

$sudo lsof -i -n -P  | grep mariadb



2. IP 외부접속 허용 변경

2-1. 모든 IP 허용


  • %은 모든 아이피를 포함, localhost는 포함되지 않음


권한 부여

MariaDB [mysql]> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '패스워드';
FLUSH PRIVILEGES;

MariaDB [mysql]> SELECT User, Host FROM mysql.user;
+-------------+-----------------------+
| User        | Host                  |
+-------------+-----------------------+
| root        | %                     |
| root        | localhost             |
|             | linked2ev-macbook-pro |
| linked2ev   | localhost             |
| mariadb.sys | localhost             |
+-------------+-----------------------+



2-2. 특정 IP 대역 허용


  • 예: 192.240.xxx.xxx


권한 부여

GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.240.%' IDENTIFIED BY '패스워드';
FLUSH PRIVILEGES;

MariaDB [mysql]> SELECT User, Host FROM mysql.user;
+-------------+-----------------------+
| User        | Host                  |
+-------------+-----------------------+
| root        | 192.240.%             |
|             | linked2ev-macbook-pro |
|             | localhost             |
| linked2ev   | localhost             |
| mariadb.sys | localhost             |
+-------------+-----------------------+



2-3. 특정 IP만 허용


  • 예: 172.30.1.55


권한 부여

GRANT ALL PRIVILEGES ON *.* TO 'root'@'172.30.1.55' IDENTIFIED BY '패스워드';
FLUSH PRIVILEGES;

MariaDB [mysql]> SELECT User, Host FROM mysql.user;
+-------------+-----------------------+
| User        | Host                  |
+-------------+-----------------------+
| root        | 172.30.1.55           |
|             | linked2ev-macbook-pro |
|             | localhost             |
| linked2ev   | localhost             |
| mariadb.sys | localhost             |
+-------------+-----------------------+



2-4. 외부접속 IP 삭제


권한 삭제

MariaDB [(none)]> DELETE FROM mysql.user WHERE Host='172.30.1.55' AND User ='root';
FLUSH PRIVILEGES;

MariaDB [mysql]> SELECT User, Host FROM mysql.user;
+-------------+-----------------------+
| User        | Host                  |
+-------------+-----------------------+
| root        | localhost             |
|             | linked2ev-macbook-pro |
| linked2ev   | localhost             |
| mariadb.sys | localhost             |
+-------------+-----------------------+




[참고]

  • https://mariadb.com/kb/ko/installing-mariadb-on-macos-using-homebrew/