1단계: MariaDB 설정 파일 수정 (외부 접속 허용)

기본적으로 MariaDB는 보안을 위해 로컬(127.0.0.1) 접속만 허용하도록 묶여 있습니다. 이 설정을 풀어주어야 합니다.

  1. 설정 파일 열기 (운영체제에 맞는 파일을 편집기로 엽니다)
    • Linux (Ubuntu/Debian): /etc/mysql/mariadb.conf.d/50-server.cnf 또는 /etc/mysql/my.cnf
    • Linux (CentOS/RHEL): /etc/my.cnf 또는 /etc/my.cnf.d/mariadb-server.cnf
    • Windows: MariaDB 설치 폴더 내 data/my.ini
  2. bind-address 항목 수정
    파일 내에서 bind-address 항목을 찾아 0.0.0.0으로 변경합니다. (모든 IP로부터의 접속을 허용한다는 의미입니다.)ini# 변경 전 bind-address = 127.0.0.1 # 변경 후 bind-address = 0.0.0.0 코드를 사용할 때는 주의가 필요합니다. [1]
  3. MariaDB 서비스 재시작
    설정을 적용하기 위해 서버를 재시작합니다.
    • Linux: sudo systemctl restart mariadb 또는 sudo systemctl restart mysql
    • Windows: 제어판 -> 관리도구 -> 서비스에서 MariaDB 재시작 [1]

2단계: 외부 접속용 사용자 계정 권한 부여

MariaDB 내부에서 특정 아이디가 외부 IP를 통해 로그인할 수 있도록 권한을 열어주어야 합니다.

  1. MariaDB 콘솔 접속 (root 계정)bashmysql -u root -p 코드를 사용할 때는 주의가 필요합니다. [1]
  2. 원격 접속 계정 생성 및 권한 부여 (상황에 맞는 명령어를 선택하세요)
    • 방법 A: 모든 IP에서 접속 가능한 계정 생성 (가장 흔함)sql-- 'username'과 'password'를 원하는 값으로 변경하세요. GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; 코드를 사용할 때는 주의가 필요합니다.
    • 방법 B: 특정 원격 IP(예: 192.168.0.50)에서만 접속 가능한 계정 생성 (보안상 권장)sqlGRANT ALL PRIVILEGES ON *.* TO 'username'@'192.168.0.50' IDENTIFIED BY 'password' WITH GRANT OPTION; 코드를 사용할 때는 주의가 필요합니다.
  3. 설정 적용 및 종료sqlFLUSH PRIVILEGES; EXIT; 코드를 사용할 때는 주의가 필요합니다.

3단계: 방화벽(Port) 및 네트워크 설정 확인

서버 자체의 방화벽이나 클라우드 보안 설정이 MariaDB의 기본 포트인 3306을 막고 있으면 접속되지 않습니다.

  • Linux (UFW 방화벽 사용 시):bashsudo ufw allow 3306/tcp sudo ufw reload 코드를 사용할 때는 주의가 필요합니다.
  • Linux (Firewalld 사용 시):bashsudo firewall-cmd --permanent --add-port=3306/tcp sudo firewall-cmd --reload 코드를 사용할 때는 주의가 필요합니다.
  • AWS / GCP 등 클라우드 환경:
    인스턴스의 보안 그룹(Security Group) 또는 방화벽 규칙으로 이동하여 인바운드(Inbound) 규칙3306 포트를 추가(허용)해야 합니다.

답글 남기기

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