본문으로 건너뛰기
목차
웹사이트

원격으로 데이터베이스에 연결하기

기계 번역입니다. 영어 원문을 이용할 수 있습니다.

데이터베이스 접속 정보를 찾는 방법, 3306 포트를 통한 직접 원격 연결이 거부되는 이유, 그리고 데스크톱 도구를 SSH 터널을 통해 연결하는 방법을 안내합니다.

데이터베이스가 있는 모든 KapsuleHost 웹 호스팅 사이트는 자체 데이터베이스, 자체 데이터베이스 사용자, 그리고 언제든지 확인할 수 있는 접속 정보를 갖게 됩니다. 다만 인터넷을 통해 직접 연결할 수는 없는데, 이는 의도된 설계입니다. 이 가이드에서는 접속 정보, 지원되는 두 가지 접속 방법, 그리고 데스크톱 데이터베이스 도구에 필요한 터널 설정 방법을 다룹니다.

접속 정보 찾기

웹사이트로 이동하여 사이트를 클릭한 다음 데이터베이스를 클릭합니다.

이 페이지에는 다섯 가지 항목이 표시됩니다.

항목값
Host127.0.0.1
Port3306
Database데이터베이스 이름
Username데이터베이스 사용자 이름
Password마스킹 처리되며, 표시 버튼과 복사 버튼이 있음

비밀번호는 한 번만 표시되는 것이 아닙니다. 필요할 때마다 다시 돌아와서 확인할 수 있으므로 별도로 저장해 둘 필요가 없습니다.

데이터베이스 서버는 MariaDB 10.11이며, MySQL과 호환됩니다. 이는 실질적으로 한 가지 중요한 의미가 있습니다. 최신 버전의 MySQL에서 내보낸 덤프 파일에는 MariaDB가 인식하지 못하는 콜레이션(collation)이 포함될 수 있으며, 이 경우 가져오기(import)가 "unknown collation" 오류와 함께 실패합니다. 이런 상황이 발생하면 utf8mb4_unicode_ci처럼 널리 호환되는 콜레이션을 사용하여 다시 내보내거나, 가져오기 전에 덤프 파일 안에서 해당 콜레이션을 찾아 바꾸시기 바랍니다.

KPanel에서 사이트의 Database 탭에 데이터베이스 연결 정보가 표시된 화면

Host가 127.0.0.1인 이유

127.0.0.1는 "이 기기 자체"를 의미합니다. 데이터베이스 서버는 해당 서버 자체의 내부 인터페이스에서만 연결을 수신하며, 방화벽에서도 3306 포트는 인터넷에 열려 있지 않습니다. 패널에는 이를 열어주는 설정이 없으며, 이를 위한 IP 허용 목록도 존재하지 않습니다.

이는 실수가 아닙니다. 인터넷에 노출된 데이터베이스 포트는 호스팅 환경에서 가장 꾸준히 악용되는 취약점 중 하나입니다. 끊임없이 스캔당하고, 연결하는 누구에게나 버전 정보가 노출되며, 비밀번호 하나만 약해도 사이트 전체를 잃을 수 있습니다. 이 포트를 닫아 두면 이러한 위험 요소 전체를 원천적으로 제거할 수 있습니다.

따라서 사이트의 공개 IP 주소와 3306 포트를 사용한 연결 문자열은 어디서든, 어떤 요금제에서든 항상 실패합니다. 대신 지원되는 접속 방법이 두 가지 있습니다.

방법 1: 브라우저에서 phpMyAdmin 사용하기

간단히 확인하거나, 수정하거나, 작은 규모로 가져오기 또는 내보내기를 할 때 가장 쉬운 방법입니다.

Database 페이지에서 phpMyAdmin 열기를 클릭합니다. 사이트의 접속 정보로 바로 로그인되며, 본인의 데이터베이스만 보이게 됩니다.

이 작업에 사용되는 링크는 의도적으로 수명이 짧으며, 오류처럼 보이지만 실제로는 오류가 아닌 방식으로 실패합니다.

  • 60초 후 만료됩니다. 링크가 나타나면 바로 클릭하세요.
  • 한 번만 작동합니다. 뒤로 가서 새로고침해도 작동하지 않으므로, 새 링크를 생성해야 합니다.
  • 요청한 것과 동일한 브라우저, 동일한 네트워크에서 열어야 합니다. 링크를 다른 기기로 복사하거나, 연결 도중 IP 주소가 바뀌면 거부됩니다.

"This link has already been used" 또는 IP 불일치에 관한 메시지가 표시된다면, 이는 보호 기능이 정상적으로 작동하고 있는 것입니다. Database 페이지로 돌아가 버튼을 다시 클릭하세요.

phpMyAdmin 자체의 사용법에 대해서는 phpMyAdmin 사용하기를 참고하세요.

방법 2: 데스크톱 도구를 위한 SSH 터널

데스크톱 클라이언트를 사용하고 싶다면 이 방법이 지원되는 경로입니다. 터널은 서버와의 암호화된 연결을 열고 자신의 기기에 있는 포트를 그 연결을 통해 전달하므로, 클라이언트는 마치 로컬 데이터베이스에 연결하는 것처럼 작동합니다.

먼저 필요한 것

사이트에 등록된 SSH 키입니다. 비밀번호 인증은 허용되지 않으므로 이 단계는 생략할 수 없습니다.

  1. 웹사이트로 이동한 다음 해당 사이트, 설정, SSH 키 순서로 이동합니다.
  2. 이미 사용 중인 공개 키를 붙여넣거나, 패널에서 새 키 쌍을 생성합니다.
  3. 해당 페이지에 표시된 사용자 이름을 기록해 둡니다. 이는 사이트의 시스템 사용자이며, 연결 시 이 이름으로 접속하게 됩니다.

패널에서 키를 생성하는 경우, 개인 키는 한 번만 표시되며 다시는 표시되지 않습니다. 즉시 저장하고, 본인만 읽을 수 있는 곳에 보관하세요.

사이트에 키가 추가될 때마다 이메일도 받게 됩니다. 이는 의도된 동작입니다. 본인이 추가한 것이 아닌데 이런 이메일이 도착했다면, 즉시 해당 페이지에서 키를 취소하고 사이트가 해킹당한 경우를 읽어보세요.

전체 절차는 SSH 키 추가하기를 참고하세요.

SFTP 탭에서 생성한 SFTP 계정은 터널에서 작동하지 않습니다. 해당 계정은 파일 전송 전용으로, 셸이나 포트 포워딩 기능이 없습니다. 터널링에는 키를 가진 사이트 고유의 SSH 사용자가 필요합니다. SFTP 접속을 참고하세요.

터널 열기

본인의 기기에서 터미널을 열고 다음을 입력합니다.

ssh -N -L 3307:127.0.0.1:3306 your-ssh-user@cp1-kapsule.kapsulehost.com

your-ssh-user 부분을 SSH 키 페이지에서 확인한 사용자 이름으로 바꿉니다. 자세히 살펴보면 다음과 같습니다.

  • -N은 명령을 실행하지 말고 터널만 열어 둔 상태로 유지하라는 의미입니다.
  • -L 3307:127.0.0.1:3306는 본인 기기의 3307 포트를 서버의 3306 포트로 전달합니다.
  • 3306 대신 3307 포트를 사용하는 이유는 로컬에서 실행 중일 수 있는 데이터베이스와 충돌하지 않도록 하기 위해서입니다.

이 명령은 정상적으로 작동할 때 아무것도 출력하지 않습니다. 이는 정상입니다. 연결이 필요한 동안에는 터미널 창을 열어 두고, 종료할 때는 Ctrl+C를 누르세요.

클라이언트 연결하기

터널이 열린 상태에서, 데이터베이스 도구에 다음과 같이 입력합니다.

설정 항목값
Host127.0.0.1
Port3307
UsernameDatabase 페이지의 데이터베이스 사용자 이름
PasswordDatabase 페이지의 데이터베이스 비밀번호
Database데이터베이스 이름

여기서 구분해야 할 점은, SSH 사용자 이름은 사이트의 시스템 사용자이고, 데이터베이스 사용자 이름은 Database 페이지에 있는 별개의 것이라는 점입니다. 이 둘을 혼동하는 것이 여기서 가장 흔하게 발생하는 실수입니다.

대부분의 데스크톱 클라이언트에는 "SSH 터널을 통해 연결"이라는 내장 옵션이 있어, 별도의 터미널 없이도 위와 똑같은 작업을 수행할 수 있습니다. SSH 호스트에 cp1-kapsule.kapsulehost.com, 포트 22, SSH 사용자 이름, 개인 키 파일을 입력한 다음, 위와 같이 데이터베이스 항목을 채우면 됩니다.

클라이언트별 설정 방법은 데이터베이스 SSH 터널을 참고하세요.

서버에서 명령줄 사용하기

터미널 사용에 익숙하다면 터널이 전혀 필요하지 않습니다. SSH로 연결하여 서버에서 직접 작업할 수 있습니다.

ssh your-ssh-user@cp1-kapsule.kapsulehost.com
mysqldump -u DBUSER -p DBNAME > backup.sql

이 방법은 큰 데이터베이스를 터널을 통해 가져오는 것보다 훨씬 빠르며, 위험한 변경 작업 전에 수동으로 덤프를 뜨는 올바른 방법이기도 합니다. WordPress의 경우 특히 WP-CLI가 대체로 더 낫습니다.

문제 해결

본인 기기에서 3306 포트에 "Connection refused"가 발생하는 경우. 정상적인 동작입니다. 위 설명을 참고하세요. 터널을 사용하세요.

터널 명령어가 비밀번호를 요구하는 경우. 키가 제공되지 않았거나 설치되어 있지 않은 것입니다. SSH 키 페이지에 키가 등록되어 있는지 확인하고, 명령어에 -i /path/to/your/private/key을 추가하세요.

"Permission denied (publickey)"가 발생하는 경우. 사용자 이름이 틀렸거나, 키가 잘못되었습니다. 사용자 이름은 SSH 키 페이지에 있는 이름이며, KapsuleHost 로그인 이메일이 아닙니다.

3307 포트에서 "Address already in use"가 발생하는 경우. 이미 터널이 열려 있거나, 다른 프로그램이 해당 포트를 사용 중입니다. 다른 터널을 닫거나, 3308처럼 다른 로컬 포트를 선택하세요.

터널은 열리지만 클라이언트가 연결되지 않는 경우. 클라이언트가 도메인이 아니라 127.0.0.1과 설정한 로컬 포트를 가리키고 있는지 확인하세요.

"Access denied for user"가 발생하는 경우. SSH가 아니라 데이터베이스 접속 정보 문제입니다. Database 페이지에서 다시 확인하고 복사하세요.

가져오기 중 "Unknown collation"이 발생하는 경우. 위에서 다룬 내용입니다. 호환되는 콜레이션으로 다시 내보내세요.

데이터베이스 클라이언트에서 수행하는 모든 작업은 즉시 반영되며 되돌릴 수 없습니다. 확인 단계도 없고 휴지통도 없습니다. 데이터를 변경하는 작업을 실행하기 전에 반드시 백업을 받아 두세요. 백업하기를 참고하세요.

관련 가이드

도움이 되었나요?

AI이신가요? 이 페이지를 Markdown으로 읽기

관련 문서

SFTP로 연결하기: FileZilla, Cyberduck 및 명령줄SFTP(Secure File Transfer Protocol)를 사용하면 서버에 있는 사이트 파일에 직접 접근할 수 있습니다.…SSL 인증서와 HTTPS이 문서는 SSL이 평이한 언어로 무엇인지, KapsuleHost가 사이트에 대해 SSL을 어떻게 자동으로 처리하는지, 그리고 인증서에 문제가 생겼을 때 무엇을 해야 하는지 설명합…웹사이트: 시작하는 방법KapsuleHost에서 웹사이트 호스팅이 어떻게 작동하는지, 사이트의 각 탭에 무엇이 있는지, 지금 하려는 작업에 맞는 가이드가 무엇인지 설명합니다.…사이트 가동 시간 모니터링KapsuleHost의 모든 사이트는 60초마다 자동으로 점검되며, Uptime 탭에서 결과를 확인할 수 있습니다: 현재 상태, 가동률, 응답 시간, 그리고 전체 장애 이력입니다.…

아직 해결되지 않았나요?

고객님의 계정을 잘 아는 Kora에게 물어보시거나 저희 팀에 문의하세요.

문의하기지원팀에 이메일