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 인스턴스 작업이 원활하지 않을 수 있습니다.
▶️ 해결 방법: 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> 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에서 제공하는 기본 저장 프로시저로 계정 및 권한을 관리하세요. 자세한 설명은 계정 설정 및 권한을 참고하시기 바랍니다.