본문으로 건너뛰기

MySQL 문제 해결

본 문서는 MySQL 서비스 관련 문제를 해결하기 위한 방법을 설명합니다.


VPC에서 Client 인스턴스와 MySQL 인스턴스 간 연결 불가​

MySQL 인스턴스(클러스터)의 3306 또는 3307 포트에 연결할 수 없는 주요 원인은 다음과 같습니다.

가용성 상태 확인​

새로 생성한 DB 인스턴스는 사용 준비가 완료될 때까지 Starting 상태로 표시됩니다. 인스턴스 그룹의 상태가 Available로 변경되고 인스턴스가 Running이 되면 연결이 가능합니다. 자세한 상태 값은 인스턴스 그룹 생명 주기 및 상태 값을 참고하시기 바랍니다.

인스턴스 그룹의 상태가용성 상태설명
AVAILABLE      READY     모든 구성이 준비됨

DB 인스턴스 연결 테스트​

  1. 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!
  2. Windows에서 DB 인스턴스에 대한 연결을 테스트할 수 있습니다.

    Telnet을 사용하여 DB 인스턴스에 대한 연결을 테스트할 수 있습니다. Telnet 작업은 연결 테스트 이외의 목적으로는 지원되지 않습니다. 연결이 성공하면 메시지가 표시되지 않으며, 실패 시 오류 메시지가 나타납니다.

    연결 테스트
    C:\Users\Administrator>telnet "DB-INSTANCE-ENDPOINT" "PORT"
    연결 대상 "DB-INSTANCE-ENDPOINT"...호스트에 연결할 수 없습니다. 포트 "PORT": 연결하지 못했습니다.

DB 인스턴스 소유자 암호 분실​

DB 인스턴스의 소유자 암호를 분실했을 경우 헬프데스크 이메일(kc_helpdesk@kakaoenterprise.com)로 문의하세요.

구분설명
{MySQL-ADMIN-PASSWORD}   ⚠️ 관리자 계정 비밀번호는 데이터베이스 구동 이후에 변경 가능
⚠️ 데이터베이스 구동 후 사용자가 변경한 관리자 계정 비밀번호는 확인 불가

DB 인스턴스 스토리지 부족​

DB 인스턴스의 사용 가능한 스토리지 용량이 부족하면 엔드포인트(Endpoint) 접근이 되지 않거나 데이터 쓰기 작업이 중단, 쿼리 실행 시 응답이 없는 등 운영상 장애가 발생할 수 있습니다.
콘솔에서는 스토리지 용량 부족을 인지할 수 있도록 다음과 같이 확인 방법을 제공하고 있습니다.

인스턴스 그룹 상태 변경: 인스턴스 그룹의 상태가 Storage-Full로 변경

Storage-Full (Warning): 데이터 또는 로그 볼륨의 여유 공간이 30 GB 이하
Storage-Full (Error): 데이터 또는 로그 볼륨의 여유 공간이 5 GB 이하

얼럿 발생: 세부 정보 페이지에서 '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 CLI
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로 표시되는 인스턴스를 삭제하세요.

  1. 가용 상태가 WarningSync인 인스턴스가 있는 인스턴스 그룹을 클릭한 후, 인스턴스 메뉴로 이동
  2. HA 구성을 유지하기 위해 인스턴스 메뉴 > [Standby 추가] 버튼을 클릭해 인스턴스를 추가 생성
    단, 데이터 양에 따라 동기화에 시간이 오래 걸릴 수 있으므로 최신 데이터를 보유한 백업을 생성한 뒤 인스턴스를 추가하는 것을 권장합니다.
  3. 삭제하려는 인스턴스를 선택하고 [삭제] 버튼을 클릭하거나 삭제하려는 인스턴스의 [⋮] 버튼 > 삭제를 선택
안내

안내된 방법으로 조치가 어렵거나 상태가 변경되지 않는 경우, 카카오클라우드 헬프데스크로 문의하시기 바랍니다.