Skip to main content

MySQL 문제 해결

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


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

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

가용성 상태 확인

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

인스턴스 그룹의 상태가용성 상태설명
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 인스턴스의 소유자 암호를 분실했을 경우 카카오클라우드 헬프데스크로 문의하세요.

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

DB 인스턴스 스토리지 부족

스토리지의 용량이 부족할 경우, DB 인스턴스 작업이 원활하지 않을 수 있습니다.

▶️ 해결 방법: DB 인스턴스의 스토리지 사용량을 80% 이하로 유지하도록 볼륨 확장 기능을 통해 스토리지를 확장하세요. 예를 들어, 다음은 샘플 구문 명령과 반환 값을 보여 줍니다.

샘플 구문 실행 실패
mysql> create table test(test_name varchar(20), test_age int);
"아무런 반응 없음"

슬로우 쿼리 조회 불가 (Monitoring > 로그 탐색기)

MySQL 서비스에서 슬로우 쿼리(Slow Query)는 파일로 저장되며, Monitoring > 로그 탐색기에서 조회할 수 있습니다.

5일이 초과한 로그의 조회

기본적으로 로그 탐색기에서는 최대 5일까지의 슬로우 쿼리 로그 적재 데이터를 확인할 수 있으며, 5일이 지난 로그는 확인할 수 없습니다.
▶️ 해결 방법: 5일이 경과한 로그가 필요한 경우 Stored Procedure 이용하기를 통해 로그 저장 위치를 파일에서 테이블로 변경하시기 바랍니다.

안내

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에서 제공하는 기본 저장 프로시저로 계정 및 권한을 관리하세요. 자세한 설명은 계정 설정 및 권한을 참고하시기 바랍니다.