웹사이트
데이터베이스에 원격으로 연결하기
Where to find your database credentials, why direct remote connections on port 3306 are refused, and how to connect a desktop tool through an SSH tunnel instead.
원격으로 데이터베이스에 연결하기
데이터베이스 자격증명을 찾는 방법, 포트 3306의 직접 원격 연결이 거부되는 이유, 그리고 SSH 터널을 통해 데스크톱 도구를 연결하는 방법입니다.
KapsuleHost 웹 호스팅 사이트마다 자체 데이터베이스, 자체 데이터베이스 사용자, 그리고 언제든 읽을 수 있는 자격증명이 제공됩니다. 하지만 인터넷을 통해 직접 연결할 수 없으며, 이는 의도적입니다. 이 가이드는 자격증명, 지원되는 두 가지 접속 방법, 그리고 데스크톱 데이터베이스 도구가 필요로 하는 터널을 설정하는 방법을 다룹니다.
자격증명 찾기
웹사이트로 이동하여 사이트를 클릭한 후 파일, 그다음 데이터베이스를 클릭합니다.
이 페이지는 다섯 가지 항목을 표시합니다:
| 필드 | 값 |
|---|---|
| 호스트 | 127.0.0.1 |
| 포트 | 3306 |
| 데이터베이스 | 사용자의 데이터베이스 이름 |
| 사용자명 | 사용자의 데이터베이스 사용자 |
| 비밀번호 | 숨김 상태, 표시 버튼과 복사 버튼 포함 |
비밀번호는 일회용 공개가 아닙니다. 필요할 때마다 돌아와서 읽을 수 있으므로 별도로 저장할 필요가 없습니다.
데이터베이스 서버는 MariaDB 10.11이며, MySQL 호환입니다. 이는 한 가지 실무적인 측면에서 중요합니다: 최신 MySQL 서버에서 내보낸 덤프는 MariaDB가 인식하지 못하는 대조를 포함할 수 있으며, 가져오기가 "unknown collation" 오류로 실패합니다. 이 경우 utf8mb4_unicode_ci와 같이 널리 호환되는 대조를 사용하여 다시 내보내거나, 가져오기 전에 덤프 파일에서 검색 및 바꾸기를 수행합니다.

호스트가 127.0.0.1인 이유
127.0.0.1는 "이 컴퓨터"를 의미합니다. 데이터베이스 서버는 컴퓨터의 자체 내부 인터페이스에서만 수신 대기하며, 포트 3306은 방화벽에서도 인터넷에 개방되어 있지 않습니다. 패널에서 이를 열 수 있는 설정이나 IP 허용 목록이 없습니다.
이는 감시자의 실수가 아닙니다. 인터넷에 노출된 데이터베이스 포트는 호스팅에서 가장 지속적으로 악용되는 항목 중 하나입니다: 끊임없이 스캔되고, 연결하는 모든 사람에게 버전 정보가 유출되며, 약한 비밀번호 하나가 전체 사이트를 잃게 합니다. 이를 닫혀 있게 유지하면 전체 위험 범주가 제거됩니다.
따라서 사이트의 공개 IP 주소와 포트 3306을 사용하는 연결 문자열은 어디서든, 모든 계획에서 항상 실패합니다. 대신 지원되는 두 가지 방법이 있습니다.
옵션 1: 브라우저의 phpMyAdmin
빠른 확인, 편집, 또는 작은 가져오기나 내보내기에 가장 쉽습니다.
데이터베이스 페이지에서 phpMyAdmin 열기를 클릭합니다. 사이트의 자체 자격증명으로 바로 로그인되며 자신의 데이터베이스만 표시됩니다.
이를 수행하는 링크는 의도적으로 단기간만 유효하며, 오류처럼 보이지만 오류가 아닌 방식으로 실패합니다:
- 60초 후에 만료됩니다. 나타나자마자 클릭하십시오.
- 한 번만 작동합니다. 돌아가서 다시 로드해도 작동하지 않습니다. 새 링크를 생성합니다.
- 요청한 동일한 브라우저 및 동일한 네트워크에서 열어야 합니다. 링크를 다른 기기에 복사하거나 도중에 연결 주소가 변경되면 거부됩니다.
"이 링크는 이미 사용되었습니다" 또는 IP 불일치에 대한 메시지가 표시되면, 보안 기능이 작동 중입니다. 데이터베이스 페이지로 돌아가서 버튼을 다시 클릭합니다.
phpMyAdmin 자체 사용에 관해서는 phpMyAdmin 사용을 참조합니다.
옵션 2: 데스크톱 도구용 SSH 터널
데스크톱 클라이언트를 사용하려면 이것이 지원되는 경로입니다. 터널은 서버에 대한 암호화된 연결을 열고 자신의 컴퓨터의 포트를 통해 이를 전달하므로 클라이언트는 로컬 데이터베이스처럼 보이는 것에 연결합니다.
먼저 필요한 것
사이트의 SSH 키입니다. 비밀번호 인증은 허용되지 않으므로 이 단계는 선택사항이 아닙니다.
- 웹사이트, 사이트, 파일로 이동한 후 SSH 키로 이동합니다.
- 이미 사용하는 공개 키를 붙여넣거나 패널에서 새 키 쌍을 생성합니다.
- 해당 페이지에 표시된 사용자명을 적어둡니다. 사이트의 시스템 사용자이며, 이것이 연결 시 사용하는 것입니다.
패널에서 키를 생성하면 개인 키는 한 번 표시되고 다시는 표시되지 않습니다. 즉시 저장하고 자신만 읽을 수 있는 곳에 보관합니다.
키가 사이트에 추가될 때마다 이메일도 받게 됩니다. 이는 의도적입니다. 이것이 도착했는데 본인이 아니면 해당 페이지에서 즉시 취소하고 사이트가 해킹된 경우를 읽습니다.
전체 설명은 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으로 전달합니다.- 포트 3307은 로컬에서 실행 중일 수 있는 데이터베이스와 충돌하지 않도록 3306 대신 사용됩니다.
명령이 작동할 때 아무것도 인쇄하지 않습니다. 이는 정상입니다. 연결이 필요한 만큼 터미널 창을 열어둔 상태로 유지하고, 닫으려면 Ctrl+C를 누릅니다.
클라이언트 연결
터널이 열려 있으면 데이터베이스 도구를 다음으로 지정합니다:
| 설정 | 값 |
|---|---|
| 호스트 | 127.0.0.1 |
| 포트 | 3307 |
| 사용자명 | 데이터베이스 페이지의 데이터베이스 사용자명 |
| 비밀번호 | 데이터베이스 페이지의 데이터베이스 비밀번호 |
| 데이터베이스 | 사용자의 데이터베이스 이름 |
분할에 주의합니다: SSH 사용자명은 사이트의 시스템 사용자이고, 데이터베이스 사용자명은 데이터베이스 페이지의 다른 사용자입니다. 이 두 가지를 섞는 것이 지금까지 가장 흔한 실수입니다.
대부분의 데스크톱 클라이언트에는 "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에서 자신의 컴퓨터로부터 "연결이 거부됨". 예상됩니다. 위를 참조합니다. 터널을 사용합니다.
터널 명령이 비밀번호를 요청합니다. 키가 제공되지 않거나 설치되지 않았습니다. 키가 SSH 키 페이지에 있는지 확인하고 명령에 -i /path/to/your/private/key을 추가합니다.
"권한이 거부됨 (publickey)". 잘못된 사용자명 또는 잘못된 키입니다. 사용자명은 SSH 키 페이지의 것이지, Kapsule 로그인 이메일이 아닙니다.
포트 3307에서 "주소가 이미 사용 중". 터널이 이미 열려 있거나 다른 것이 해당 포트를 사용 중입니다. 다른 것을 닫거나 3308과 같은 다른 로컬 포트를 선택합니다.
터널은 열려 있지만 클라이언트가 연결할 수 없습니다. 클라이언트가 127.0.0.1과 선택한 로컬 포트를 가리키고 있으며 도메인을 가리키지 않고 있는지 확인합니다.
사용자에 대해 "액세스가 거부됨". 데이터베이스 자격증명이지, SSH가 아닙니다. 데이터베이스 페이지에서 다시 표시하고 복사합니다.
가져오기에서 "알 수 없는 대조". 위에서 다룹니다. 호환 가능한 대조로 다시 내보냅니다.
데이터베이스 클라이언트에서 수행하는 모든 작업은 즉시 발생하며 실행 취소할 수 없습니다. 확인 단계나 휴지통이 없습니다. 작성하는 항목을 실행하기 전에 백업을 수행합니다. 백업 수행을 참조합니다.