MySQL 문제 해결
본 문서는 MySQL 서비스 관련 문제를 해결하기 위한 방법을 설명합니다.
VPC에서 Client 인스턴스와 MySQL 인스턴스간 연결 불가
MySQL 인스턴스(클러스터)의 3306 또는 3307 포트에 연결할 수 없는 주요 원인은 다음과 같습니다.
가용성 상태 확인
새로 생성한 DB 인스턴스는 사용 준비가 완료될 때까지 Creating 상태로 표시됩니다. 인스턴스의 상태가 Available로 변경되면 연결이 가능합니다. 인스턴스 그룹의 가용 상태를 참고하시기 바랍니다.
| 인스턴스 그룹의 상태 | 가용성 상태 | 설명 |
|---|---|---|
AVAILABLE | READY | 모든 구성이 준비됨 |
DB 인스턴스 연결 테스트
-
Linux 또는 Unix 터미널에서 DB 인스턴스에 대한 연결을 테스트할 수 있습니다.
아래 명령어에서
DB-INSTANCE-ENDPOINT를 엔드포인트로,PORT를 포트로 대체하여 입력합니다.인스턴스 상태 테스트nc -vz "DB-INSTANCE-ENDPOINT" "PORT"예시:
샘플 테스트ubuntu@host-172-16-3-252:~$ nc -vz "DB-INSTANCE-ENDPOINT" "PORT"
Connection to "DB-INSTANCE-ENDPOINT" (172.16.3.154) "PORT" port [tcp/mysql] succeeded! -
Windows에서 DB 인스턴스에 대한 연결을 테스트할 수 있습니다.
Telnet을 사용하여 DB 인스턴스에 대한 연결을 테스트할 수 있습니다. Telnet 작업은 연결 테스트 이외의 목적으로는 지원되지 않습니다. 연결이 성공하면 메시지가 표시되지 않으며, 실패 시 오류 메시지가 나타납니다.연결 테스트C:\Users\Administrator>telnet "DB-INSTANCE-ENDPOINT" "PORT"
연결 대상 "DB-INSTANCE-ENDPOINT"...호스트에 연결할 수 없습니다. 포트 "PORT": 연결하지 못했습니다.
DB 인스턴스 소유자 암호 분실
DB 인스턴스의 소유자 암호를 분실했을 경우 카카오클라우드 헬프데스크로 문의하세요.
| 구분 | 설명 |
|---|---|
{MySQL-ADMIN-PASSWORD} | ⚠️ 관리자 계정 패스워드는 데이터베이스 구동 이후에 변경 가능 ⚠️ 데이터베이스 구동 후 사용자가 변경한 관리자 계정 패스워드는 확인 불가 |
DB 인스턴스 스토리지 부족
DB 인스턴스의 사용 가능한 스토리지 용량이 부족하면 엔드포인트(Endpoint) 접근이 되지 않거나 데이터 쓰기 작업이 중단, 쿼리 실행 시 응답이 없는 등 운영상 장애가 발생할 수 있습니다.
콘솔에서는 스토리지 용량 부족을 인지할 수 있도록 다음과 같이 확인 방법을 제공하고있습니다.
인스턴스 그룹 상태 변경: 인스턴스 그룹의 상태가 Storage-Full로 변경
Storage-Full (Warning): 데이터 또는 로그 볼륨의 여유 공간이 30GB 이하
Storage-Full (Error): 데이터 또는 로그 볼륨의 여유 공간이 5GB 이하
얼럿 발생: 세부 정보 페이지에서 'Primary Storage 잔여 사용량' 얼럿 마크, '사용 가능한 스토리지 용량이 30GB 이하인 인스턴스' 얼럿 메시지 노출
지표 이상: 모니터링 탭 > DIsk > 디스크에서 사용 가능한 용량(Bytes) 확인
▶️ 해결 방법: DB 인스턴스의 스토리지 사용량이 적정한 수준으로 유지되도록 위와 같은 현상 발생 시, 볼륨 확장 기능을 통해 스토리지를 확장하세요.
슬로우 쿼리 조회 불가 (Monitoring > 로그 탐색기)
MySQL 서비스에서 슬로우 쿼리(Slow Query)는 파일로 저장되며, Monitoring > 로그 탐색기에서 조회할 수 있습니다.
5일이 초과한 로그의 조회
기본적으로 로그 탐색기에서는 최대 5일까지의 슬로우 쿼리 로그 적재 데이터를 확인할 수 있으며, 5일이 지난 로그는 확인할 수 없습니다.
▶️ 해결 방법: 5일이 경과한 로그가 필요한 경우 로그 추출을 통해 UTC 기준으로 최근 1주일 이내의 슬로우 쿼리 로그를 추출할 수 있습니다.
5일 이내 로그 확인이 불가한 경우, 카카오클라우드 헬프데스크로 문의하시기 바랍니다.
SSH 오류 메시지: Access denied
ERROR 1044 (42000): Access denied for user 'user'@'%' to database 'database'
이 오류는 사용자를 생성하고 권한을 부여하는 과정에서 발생합니다.
mysql> CREATE USER 'user'@'%' IDENTIFIED BY '1234';
mysql> GRANT ALL PRIVILEGES ON user.* TO 'user'@'%';
ERROR 1044 (42000): Access denied for user 'admin'@'%' to database 'database'
▶️ 해결 방법: 카카오클라우드 MySQL에서 제공하는 기본 저장 프로시저로 계정 및 권한을 관리하세요. 자세한 설명은 계정 설정 및 권한을 참고하시기 바랍니다.
인스턴스 가용성이 WarningSync가 된 경우
MySQL 서비스에서는 인스턴스간 데이터 복제 상태를 '가용 상태' 지표로 제공합니다.가용 상태가 WarningSync로 표시되는 경우, 동기화 이슈가 발생한 것을 의미합니다. 가용 상태가 WarningSync가 된 인스턴스는 서비스 안전성을 위해 Auto Failover를 제한하고 있습니다.
▶️ 해결 방법: 인스턴스 그룹에서 가용 상태가 WarningSync로 표시되는 인스턴스를 삭제하세요.
- 가용 상태가 WarningSync인 인스턴스가 있는 인스턴스 그룹을 클릭한 후, 인스턴스 메뉴로 이동
- HA 구성을 유지하기위해 인스턴스 메뉴 > [Standby 추가] 버튼을 클릭해 인스턴스를 추가 생성
단, 데이터양에 따라 sync가 오래걸릴 수 있으며 최신 데이터를 보유한 백업을 생성한 뒤 인스턴스 추가 생성을 권장합니다. - 삭제하려는 인스턴스를 선택하고 삭제 버튼을 클릭하거나 삭제하려는 인스턴스의 [⋮] 버튼 > 삭제를 선택
안내된 방법으로 조치가 어렵거나 상태가 변경되지 않는 경우, 카카오클라우드 헬프데스크로 문의하시기 바랍니다.