
MySQL에 외부 IP 접근을 허용하는 방법은 다음과 같은 단계를 포함합니다. 기본적으로 MySQL은 로컬 호스트에서만 접근을 허용하도록 설정되어 있습니다. 외부에서 접근을 허용하려면 몇 가지 설정을 변경해야 합니다.
- MySQL 구성 파일 수정
mysqld.cnf 파일 열기:
MySQL 서버의 구성 파일을 편집기로 엽니다. mysqld.cnf 파일은 보통 /etc/mysql/mysql.conf.d/mysqld.cnf에 위치합니다.
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
바인드 주소 변경:
파일에서 bind-address 속성을 찾습니다. 기본값은 127.0.0.1로 설정되어 있어 로컬 호스트에서만 접근을 허용합니다. 이를 변경하여 외부 접근을 허용하려면 0.0.0.0으로 설정합니다. 이렇게 하면 모든 IP 주소에서의 접근을 허용합니다.
bind-address = 0.0.0.0
파일 저장 및 종료:
변경사항을 저장한 후 파일을 닫습니다.
- MySQL 사용자 권한 설정
MySQL에서 외부 접근을 허용하려면 해당 사용자에게 외부 IP 주소 또는 %를 사용하여 모든 IP에서의 접근을 허용해야 합니다.
MySQL에 로그인:
mysql -u root -p
외부 접근 허용을 위한 사용자 권한 부여:
아래 명령어를 사용하여 특정 사용자에게 모든 IP 주소에서 접근할 수 있는 권한을 부여합니다. ‘username’@’%’에서 username을 실제 사용자 이름으로, your_password를 사용자의 비밀번호로 교체하세요.
GRANT ALL PRIVILEGES ON . TO ‘username’@’%’ IDENTIFIED BY ‘your_password’ WITH GRANT OPTION;
FLUSH PRIVILEGES;
MySQL 종료:
EXIT;
- 방화벽 설정 (필요한 경우)
외부 접근을 허용하려면 우분투 방화벽(UFW)에서도 MySQL 포트(기본값은 3306)를 열어야 할 수 있습니다.
sudo ufw allow 3306
sudo ufw reload
- MySQL 서비스 재시작
구성 변경사항을 적용하기 위해 MySQL 서비스를 재시작합니다.
sudo systemctl restart mysql
이제 설정한 외부 IP 또는 모든 IP에서 MySQL 서버에 접근할 수 있습니다. 보안을 위해 가능한 한 특정 IP 주소에 대해서만 접근을 허용하고, 사용하지 않는 경우에는 방화벽 규칙을 다시 설정하여 포트를 닫는 것이 좋습니다.
