Cloud SQL 오류 메시지

이 페이지에서는 Cloud SQL에서 발생하는 몇 가지 오류 메시지를 설명합니다.

개요

Cloud SQL의 오류 메시지는 소스도 다양하고 여러 위치에 나타납니다. 일부 오류 메시지는 데이터베이스 엔진 자체에서, 일부는 Cloud SQL 서비스에서, 일부는 클라이언트 애플리케이션에서 나오며, 일부는 Cloud SQL Admin API 호출에 의해 반환됩니다.

이 페이지에는 Cloud SQL에서 볼 수 있는 가장 일반적인 오류가 포함되어 있습니다. 찾고 있는 오류 코드나 메시지를 여기서 찾을 수 없는 경우 다음 페이지에서 소스 참조 자료를 찾을 수 있습니다.

표시되는 오류 메시지에 대한 참조 자료를 찾을 수 없다면 다른 사용자의 관련 경험이 있을 수 있는 다음 몇몇 위치에서 찾을 수도 있습니다.

알 수 없는 오류

다음 표는 Unknown Error가 발생할 수 있는 몇 가지 알려진 사례를 보여주며, 해당하는 경우 특정 해결 방법을 보여줍니다. 하지만 이것이 전체 목록은 아닙니다. 이 표에서 자신의 사례를 찾을 수 없으면 Cloud SQL의 공개 Issue Tracker로 확인하세요. 여기에서도 문제를 찾을 수 없으면 보고서를 제출하거나 기타 지원 옵션을 검토할 수 있습니다.

작업 문제 원인 해결 방법
백업 자동 또는 수동 백업 중에 이 오류가 표시되면 인스턴스 디스크가 가득 찼을 수 있습니다. 임시 파일 크기가 너무 많은 공간을 차지하는 경우 인스턴스를 다시 시작하여 해당 파일을 삭제하고 디스크 공간을 확보할 수 있습니다. 그렇지 않으면 인스턴스를 더 큰 디스크 크기로 업그레이드해야 할 수 있습니다.
클론 이 오류는 선택한 영역에 리소스가 부족할 때 발생할 수 있습니다. 리전의 다른 영역을 사용해 보거나 잠시 기다린 후 다시 시도하세요.
인스턴스 만들기
  • 이 오류는 최근에 삭제한 인스턴스와 동일한 이름을 다시 사용하려고 할 때 발생할 수 있습니다.
  • 또한 간헐적인 연결 문제로 인해 발생할 수도 있습니다.
  • 프로젝트에 대해 Service Networking API가 사용 설정되지 않았다고 로그에 표시될 수 있습니다.
  • 여러 인스턴스를 동시에 만들려고 할 때도 이 오류가 표시됩니다. 예를 들어 Terraform 스크립트를 사용하면 이 시도가 가능합니다.
  • 또 다른 원인은 특정 리소스가 소진되었거나 할당량 한도가 초과되었기 때문일 수 있습니다. 로그에서 Quota 'INTERNAL_FORWARDING_RULES_WITH_TARGET_INSTANCE_PER_NETWORK' exceeded. Limit: 100.0 globally와 같은 항목을 찾습니다.
  • 인스턴스 이름은 삭제 후 일주일이 지나야 다시 사용할 수 있습니다.
  • 간헐적인 연결 문제의 경우에 다시 시도하면 문제가 해결됩니다.
  • 프로젝트에 Service Networking API를 사용 설정합니다.
  • 병렬 인스턴스 만들기 스크립트는 인스턴스 중 하나만 만들 때만 성공합니다. 각 인스턴스 만들기 작업이 완료될 때까지 기다렸다가 다음 인스턴스로 계속 진행합니다.
내보내기 데이터베이스를 Cloud Storage 버킷으로 내보내는 중 이 오류가 발생하면 전송 실패 이유가 대역폭 문제 때문일 수 있습니다. Cloud SQL 인스턴스가 Cloud Storage 버킷과 다른 리전에 있을 수 있습니다. 한 대륙에서 데이터를 읽어 다른 대륙에 쓰려면 많은 네트워크 사용량이 필요하며, 이러한 간헐적인 문제를 일으킬 수 있습니다.
장애 조치(자동) 서비스에서 기본 인스턴스가 계속 응답하고 있는 것으로 감지되면 자동 장애 조치 작업으로 이 오류 메시지가 생성될 수 있습니다. 이 경우에는 수행할 작업이 없습니다. 장애 조치가 필요하지 않기 때문에 수행되지 않습니다.
가져오기 가져오기 파일에 수퍼유저 역할이 필요한 문이 포함되었을 수 있습니다. 파일을 수정하여 수퍼유저 역할이 필요한 모든 문을 삭제합니다.

또한 Cloud SQL에는 일부 타사 바이너리(예: mysqld)가 사용되며, 이로 인해 알 수 없는 오류 메시지가 생성될 수 있습니다. 이러한 오류는 해당 타사 바이너리의 내부 문제이며 Cloud SQL의 범위를 벗어납니다. 하지만 경우에 따라 동시에 보다 구체적인 오류가 Cloud SQL 로그 파일에서 발견될 수 있습니다.

또한 이것이 알 수 없는 오류 코드인 경우도 있습니다. 이럴 때 전체 메시지는 Unknown Error Code일 수 있습니다.

기타 오류

잘못된 요청

HTTP Error 400 Bad Request 오류 메시지가 표시됩니다.

문제 원인

잘못된 요청에는 여러 가지 원인이 있을 수 있습니다. 잘못된 인수는 가장 일반적인 원인 중 하나입니다. 이 경우 요청이 잘못된 인수를 사용하거나 인수에 잘못된 값을 사용하고 있습니다. 다른 여러 원인의 경우 오류 메시지에 유용한 힌트가 포함되어 있을 수 있습니다.

해결 방법

잘못된 인수의 경우 요청을 검사하여 각 인수가 허용되고 인수의 각 값이 유효한지 확인합니다. 그 밖의 모든 원인은 로그 파일을 검사하여 사용 가능한 추가 정보가 있는지 확인하세요.


사용자 액세스가 거부됨

Access denied for user 'XXX'@'XXX' (using password: XXX) 오류 메시지가 표시됩니다.

문제 원인

다음과 같은 몇 가지 원인이 있을 수 있습니다.

  • 사용자 이름(또는 비밀번호)이 잘못되었습니다.
  • 사용자가 @XXX 이외의 URL에서 연결합니다.
  • 사용자가 연결하려는 데이터베이스에 대한 올바른 권한이 없습니다.

해결 방법

  • 사용자 이름과 해당 비밀번호를 확인합니다.
  • 연결의 출처를 확인하여 사용자에게 액세스 권한이 있는 URL과 일치하는지 확인합니다.
  • 데이터베이스에서 사용자의 권한 부여를 확인합니다.

디스크가 가득 참

Disk is full 오류 메시지가 표시되거나 디스크 공간이 부족한 것을 발견합니다.

문제 원인

복제본을 만드는 동안 기본 인스턴스 디스크 크기가 가득 찰 수 있습니다.

해결 방법

기본 인스턴스를 수정하여 더 큰 디스크 크기로 업그레이드합니다.


업그레이드 중 치명적인 오류 발생

인스턴스에서 리소스를 업그레이드할 때 ERROR_INTERNAL_FATAL 오류 메시지가 표시됩니다.

문제 원인

여러 가지 원인이 있을 수 있습니다.

해결 방법

로그에 자세한 정보가 표시될 수 있습니다. 그렇지 않으면 고객지원에 문의하여 인스턴스를 강제로 다시 만듭니다.


HTTP 오류 409

HTTP Error 409 in a Terraform script 또는 Error 409 Operation failed because another operation was already in progress 오류 메시지가 표시됩니다.

문제 원인

  1. Terraform 스크립트를 확인합니다. 이 스크립트는 다음 작업을 시작하기 전에 각 작업이 완료되기를 기다려야 합니다.
  2. HTTP Error 409: Operation failed because another operation was already in progress
  3. 이름 재사용을 위한 대기 기간이 끝나기 전에 최근에 삭제된 인스턴스와 동일한 이름을 다시 사용하려 하고 있습니다.

해결 방법

  1. Terraform 스크립트를 실행하는 경우 각 인스턴스 작업이 완료될 때까지 실행을 중지합니다. 스크립트를 폴링하고 이전 작업 ID로 200이 반환될 때까지 기다립니다. 그렇지 않으면 현재 실행 중인 작업이 완료될 때까지 기다립니다.
  2. 인스턴스를 삭제한 후 새 인스턴스에 동일한 이름을 다시 사용하려면 일주일을 기다려야 합니다.

내부 오류

{"ResourceType":"sqladmin.v1beta4.instance", "ResourceErrorCode":"INTERNAL_ERROR","ResourceErrorMessage":null} 오류 메시지가 표시됩니다.

문제 원인

서비스 프로젝트에 이 기능에 필요한 서비스 네트워킹 서비스 계정이 없을 수 있습니다.

해결 방법

서비스 권한을 복구하려면 Service Networking API를 사용 중지하고 5분 정도 기다린 후 다시 사용 설정합니다.


네트워크 연결 실패

Network association failed due to the following error: set Service Networking service account as servicenetworking.serviceAgent role on consumer project 오류 메시지가 표시됩니다.

문제 원인

프로젝트에서 Service Networking API가 사용 설정되지 않았습니다.

해결 방법

프로젝트에서 Service Networking API를 사용 설정합니다. Cloud SQL 인스턴스에 비공개 IP 주소를 할당하려고 하고 공유 VPC를 사용할 때 이 오류가 표시되면 호스트 프로젝트에도 Service Networking API를 사용 설정해야 합니다.


연결이 승인되지 않음

Unauthorized to connect 오류 메시지가 표시됩니다.

문제 원인

승인은 여러 수준에서 발생하므로 여러 가지 원인이 있을 수 있습니다.

  • 데이터베이스 수준에서 데이터베이스 사용자가 있어야 하며 비밀번호가 일치해야 합니다.
  • 프로젝트 수준에서 사용자에게 serviceusage.services.use 또는 cloudsql.instances.connect 권한을 포함한 올바른 IAM 권한이 없을 수 있습니다.
  • 네트워크 수준에서 Cloud SQL 인스턴스가 공개 IP를 사용하는 경우 연결의 소스 IP가 승인된 네트워크에 있어야 합니다.

해결 방법

  • 사용자가 존재하고 비밀번호가 일치하는지 확인합니다.
  • 사용자 계정에 Service Usage Consumer 역할을 할당합니다. 이 역할에는 serviceusage.services.use 권한이 포함됩니다.
  • 공개 IP를 사용하는 경우 소스 IP가 승인된 네트워크에 있는지 확인합니다.

할당량 초과

RESOURCE_EXHAUSTED: Quota exceeded 또는 GLOBAL_ADDRESSES_QUOTA_EXCEEDED 오류 메시지가 표시됩니다.

문제 원인

분당 또는 일일 할당량 한도에 도달했습니다. Cloud SQL의 할당량 및 한도를 검토합니다.

해결 방법

Google Cloud Console에서 할당량 증가를 요청합니다.


요청에 유효한 API 키가 없음

HTTP Error 403: PERMISSION_DENIED. The request is missing a valid API key 오류 메시지가 표시됩니다.

문제 원인

유효한 서비스 계정 키 JSON 파일이 없거나 예상 위치에 저장되지 않았을 수 있습니다.

해결 방법

GOOGLE_APPLICATION_CREDENTIALS 환경 변수에 저장된 위치에 유효한 서비스 계정 키 JSON 파일이 있고 이 변수가 올바른 위치를 가리키고 있는지 확인합니다.


시스템 오류 발생

[ERROR_RDBMS] system error occurred 오류 메시지가 표시됩니다.

문제 원인

  1. 사용자에게 필요한 일부 Cloud Storage 권한이 없을 수 있습니다.
  2. 데이터베이스 테이블이 없을 수 있습니다.

해결 방법

  1. 최소한 버킷에 대한 WRITER 권한과 내보내기 파일에 대한 READER 권한이 있는지 확인합니다. Cloud Storage에서 액세스 제어를 구성하는 방법에 대한 자세한 내용은 액세스제어 목록 만들기 및 관리를 참조하세요.
  2. 테이블이 있는지 확인합니다. 테이블이 있다면 스토리지 버킷에 대한 올바른 권한이 있는지 확인합니다.

테이블 정의가 변경됨

Table definition has changed, please retry transaction when dumping table 오류 메시지가 표시됩니다.

문제 원인

내보내기 프로세스 중에 테이블에서 변경 사항이 발생했습니다.

해결 방법

내보내기 작업 중에 다음 문을 사용하면 덤프 트랜잭션이 실패할 수 있습니다.

  • ALTER TABLE
  • CREATE TABLE
  • DROP TABLE
  • RENAME TABLE
  • TRUNCATE TABLE
덤프 작업에서 이러한 문을 삭제합니다.


임시 파일 크기가 temp_file_limit 초과

Temporary file size exceeds temp_file_limit 오류 메시지가 표시됩니다.

문제 원인

temp_file_limit 플래그가 데이터베이스 사용량에 비해 너무 낮게 설정되어 있습니다.

해결 방법

temp_file_limit 크기를 늘립니다. 데이터베이스 플래그 구성을 참조하세요.