본문 바로가기

DB/MySQL

[ MySQL ] 원격으로 접속하기

반응형

MySQL 데이터베이스에서 모든 IP 주소에 대해 접속을 허용하려면, 몇 가지 설정을 변경해야 합니다. 주로 MySQL의 bind-address 설정을 변경하고, 사용자 권한을 업데이트하는 작업이 필요합니다.

 

1. MySQL 서버 설정 파일 변경 (my.cnf 또는 my.ini)

1.  MySQL 설정 파일을 엽니다.
    -   Linux: `/etc/mysql/my.cnf` 또는 `/etc/my.cnf`
    -   Windows: MySQL 설치 디렉토리 내 `my.ini`
2.  `bind-address` 항목을 수정합니다. 기본적으로 `127.0.0.1`로 설정되어 있어, MySQL 서버가 로컬 호스트에서만 연결을 허용합니다. 이를 `0.0.0.0`으로 변경하면 모든 IP에서 접속을 허용할 수 있습니다.

 3.  MySQL 서버가 특정 IP 주소에만 바인딩되도록 설정되어 있을 수 있습니다. 이를 수정하려면 MySQL 설정 파일(`my.cnf` 또는 `my.ini`)을 수정해야 합니다.
   bind-address = 0.0.0.0

이렇게 하면 MySQL 서버가 모든 IP 주소에서의 접속을 수락하게 됩니다.

 

2. 설정 파일을 수정한 후, MySQL 서비스를 재시작해야 합니다.

   sudo systemctl restart mysql

 

3. MySQL 사용자 권한 수정

MySQL 사용자 계정이 특정 IP에서만 접속을 허용하도록 설정되어 있을 수 있습니다. 이 경우, 사용자 권한을 업데이트하여 모든 IP에서 접속할 수 있도록 해야 합니다.

  1. MySQL에 로그인합니다.
   mysql -u root -p
  1. 원격 접속용 사용자 생성

'''
CREATE USER 'newuser'@'%' IDENTIFIED BY 'password';
'''

  1. 특정 사용자에 대해 모든 IP에서 접속을 허용하려면, 사용자 권한을 '%'로 수정합니다. 예를 들어, username 사용자에 대해 모든 IP에서 접속을 허용하려면 아래와 같이 입력합니다.
   GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password';
  • '%'는 모든 IP 주소를 의미합니다.
  • ALL PRIVILEGES는 해당 사용자에게 모든 권한을 부여합니다. 필요에 따라 권한을 조정할 수 있습니다.
  1. 권한을 적용하려면 아래 명령을 실행합니다.
   FLUSH PRIVILEGES;

 

4. 방화벽 설정 확인

MySQL 서버가 실행 중인 머신에서 방화벽이 설정되어 있다면, 해당 포트(기본적으로 3306)가 외부에서 접근 가능하도록 방화벽 규칙을 추가해야 할 수 있습니다. 예를 들어, Linux에서 ufw를 사용 중이라면 다음과 같이 규칙을 추가할 수 있습니다.

   sudo ufw allow 3306

 

5. MySQL 연결 테스트

이제 외부에서 MySQL에 접속할 수 있어야 합니다. 외부 머신에서 MySQL 클라이언트를 사용하여 접속을 테스트합니다.

   mysql -u username -p -h your_mysql_server_ip

위 단계를 통해 모든 IP 주소에서 MySQL 서버로의 접속을 허용할 수 있습니다. 보안상 주의할 점은, 실제 운영 환경에서는 IP 접근을 제한하거나 방화벽, VPN 등 보안 조치를 추가하는 것이 좋습니다.

반응형