이 페이지에서는 Cloud SQL에서 발생하는 몇 가지 오류 메시지를 설명합니다.
개요
Cloud SQL의 오류 메시지는 소스도 다양하고 여러 위치에 나타납니다. 일부 오류 메시지는 데이터베이스 엔진 자체에서, 일부는 Cloud SQL 서비스에서, 일부는 클라이언트 애플리케이션에서 나오며, 일부는 Cloud SQL Admin API 호출에 의해 반환됩니다.
이 페이지에는 Cloud SQL에서 볼 수 있는 가장 일반적인 오류가 포함되어 있습니다. 찾고 있는 오류 코드나 메시지를 여기서 찾을 수 없는 경우 다음 페이지에서 소스 참조 자료를 찾을 수 있습니다.
표시되는 오류 메시지에 대한 참조 자료를 찾을 수 없다면 다른 사용자의 관련 경험이 있을 수 있는 다음 몇몇 위치에서 찾을 수도 있습니다.
- Stack Overflow의 Cloud SQL 질문
- Cloud SQL용 공개 Issue Tracker
- DBA Stack Exchange
- Cloud SQL 토론 그룹
- Google Cloud Slack 커뮤니티
- Reddit의 Google Cloud
작업 오류
A | B | C | D | E | F | G | I | L | M | N | O | P | Q | R | S | T | U | W
오류 메시지 | 문제 해결 |
---|---|
DB_NAME db에 대한 xxx 연결이 취소되었습니다. | 애플리케이션이 연결을 올바르게 종료하지 않습니다.
다음 조건을 확인하세요.
|
액세스 거부됨. 이 작업에 대한 SUPER 권한(하나 이상)이 필요합니다. | 소스 데이터베이스에 Cloud SQL에서 지원하지 않는 방식으로 DEFINER 를 참조하는 뷰, 함수 또는 프로시져가 있을 수 있습니다.외부 데이터베이스에서 DEFINER를 업데이트합니다(예: |
사용자 'XXX'@'XXX'에 대한 액세스가 거부됨(비밀번호 사용: XXX) | 다음과 같은 몇 가지 원인이 있을 수 있습니다.
해결 방법:
|
할당된 IP 범위를 네트워크에서 찾을 수 없습니다. | 할당된 범위를 수정하거나 삭제한 후에는 VPC 피어링이 업데이트되지 않았습니다.
비공개 연결을 수정해야 합니다. 다음 명령어를 사용하고 gcloud services vpc-peerings update \ --network=VPC_NETWORK \ --ranges=ALLOCATED_RANGES \ --service=servicenetworking.googleapis.com \ --force |
테이블에 대해 사용자 'root'@'%'에게 모든 명령어가 거부되었습니다 ... | 사용자에게 이 작업에 필요한 모든 권한이 없습니다.
해결 방법:
|
오류 메시지 | 문제 해결 |
---|---|
잘못된 요청입니다. | 이 메시지의 원인은 여러 가지일 수 있습니다. Illegal Argument 가 가장 일반적인 원인 중 하나입니다. 이 경우 요청에서 잘못된 인수를 사용하거나 잘못된 인수 값을 사용하고 있습니다. 다른 여러 원인의 경우 오류 메시지에 유용한 힌트가 있을 수 있습니다.
|
오류 메시지 | 문제 해결 |
---|---|
CreateConnection에서 할당된 범위를 수정할 수 없습니다. UpdateConnection을 사용하세요. | 할당된 범위를 수정하거나 삭제한 후에 VPC 피어링이 업데이트되지 않았습니다.
비공개 연결을 수정해야 합니다.
다음 명령어를 사용하고 gcloud services vpc-peerings update \ --network=VPC_NETWORK \ --ranges=ALLOCATED_RANGES \ --service=servicenetworking.googleapis.com \ --force |
Constraints/sql.restrictAuthorizedNetworks. | 클론 작업이 Authorized Networks 구성에 의해 차단되었습니다. Google Cloud Console의 연결 섹션에서 공개 IP 주소에 Authorized Networks 가 구성되어 있으며 보안 고려사항으로 인해 클론이 허용되지 않습니다.
가능하면 Cloud SQL 인스턴스에서 모든 |
오류 메시지 | 문제 해결 |
---|---|
디스크가 가득 참 | 복제본을 만드는 동안 기본 인스턴스 디스크 크기가 가득 찰 수 있습니다.
기본 인스턴스를 수정하여 더 큰 디스크 크기로 업그레이드합니다. |
오류 메시지 | 문제 해결 |
---|---|
서브네트워크를 만들 수 없습니다. | IP 범위에 더 이상 사용 가능한 주소가 없습니다.
할당된 IP 범위에서 여유 블록을 찾을 수 없습니다. 이 서비스 제공업체에 새 범위를 할당하세요. 할당된 IP 범위에 사용 가능한 주소가 더 이상 없습니다. 다음 시나리오를 고려해 보세요.
위의 각 시나리오에서 비공개 서비스 연결에 대해 기존 IP 범위를 확장하거나 추가 IP 범위를 할당할 수 있습니다. 새 범위를 할당하는 경우 기존 할당과 겹치는 할당을 만들지 않도록 주의합니다. 새 IP 범위를 만든 후 다음 명령어를 사용하여 VPC 피어링을 업데이트합니다. gcloud services vpc-peerings update \ --service=servicenetworking.googleapis.com --ranges=OLD_RESERVED_RANGE_NAME,NEW_RESERVED_RANGE_NAME \ --network=VPC_NETWORK --project=PROJECT_ID \ --force 기존 할당을 확장하는 경우 할당 범위를 늘리기만 하고 줄이지 않도록 합니다. 예를 들어 원래 할당이 10.0.10.0/24인 경우 새 할당을 최소 10.0.10.0/23으로 만듭니다. 일반적으로 /24 할당에서 시작하는 경우 각 조건(추가 인스턴스 유형 그룹, 추가 리전)에 대해 /mask를 1만큼 줄이는 것이 좋은 규칙입니다. 예를 들어 동일한 할당에서 인스턴스 유형 그룹을 둘 다 만들려는 경우 /24에서 /23으로 전환하면 충분합니다. 기존 IP 범위를 확장한 후 다음 명령어를 사용하여 VPC 피어링을 업데이트합니다. gcloud services vpc-peerings update \ --service=servicenetworking.googleapis.com --ranges=RESERVED_RANGE_NAME \ --network=VPC_NETWORK \ --project=PROJECT_ID \ --force |
오류 메시지 | 문제 해결 |
---|---|
(gcloud.sql.connect) 클라이언트에 ipv6 연결이 없고 데이터베이스 인스턴스에 ipv4 주소가 없는 것으로 보입니다. | Cloud Shell을 사용하여 비공개 IP 인스턴스에 연결하려고 합니다.
Cloud Shell에서 비공개 IP 주소만 있는 인스턴스로의 연결은 현재 지원되지 않습니다. |
테이블을 덤프할 때 max_allowed_packet 바이트보다 큰 패킷이 있습니다. |
패킷이 설정에서 허용하는 것보다 큽니다.
관리형 가져오기 마이그레이션에 |
오류 메시지 | 문제 해결 |
---|---|
InnoDB: ./ibtmp1 파일에 쓰기가 오프셋 XXXX에서 실패했습니다. YYYY바이트가 기록되어야 하는데 0만 기록되었습니다. | 인스턴스가 자동 백업을 수행할 때 고정 한도에 도달했습니다.
OS 및 파일 시스템이 이 크기의 파일을 지원하는지 확인합니다. 디스크가 가득 찼거나 디스크 할당량을 넘었는지 확인합니다. Google Cloud Console에서 할당량 증가를 요청하거나 인스턴스를 수정하여 더 큰 디스크 크기로 업그레이드할 수 있습니다. |
내부 오류입니다. | 프로젝트에 이 기능에 필요한 서비스 네트워킹 서비스 계정이 없을 수 있습니다.
서비스 권한을 복구하려면 |
잘못된 요청: 인스턴스의 서비스 네트워킹 구성이 잘못되었습니다. | 프로젝트에서 Service Networking API 가 사용 설정되지 않았습니다.
프로젝트에서 |
오류 메시지 | 문제 해결 |
---|---|
메타데이터 테이블 잠김. | 다른 쿼리, 프로세스 또는 트랜잭션에서 쿼리를 차단하고 테이블을 잠갔습니다.
테이블을 잠근 프로세스를 찾아 중지합니다.
|
오류 메시지 | 문제 해결 |
---|---|
네트워크 연결 실패 | 프로젝트에서 Service Networking API 가 사용 설정되지 않았습니다.
프로젝트에서 |
오류 메시지 | 문제 해결 |
---|---|
또 다른 작업이 이미 진행되고 있어 작업에 실패했습니다. | 대부분의 Cloud SQL 작업은 동기식입니다. 한 번에 하나만 실행할 수 있습니다.
이전 작업이 완료될 때까지 기다린 후에 다른 작업을 시작합니다. |
이 인스턴스에 유효한 작업이 아님 | 이 오류는 instances.restoreBackup 에 대한 API 호출에서 반환되며 스토리지 크기(XXGB)가 백업 크기(YYGB)보다 작으면 백업에서 인스턴스로 복원할 수 없습니다.
대상 인스턴스를 수정하여 스토리지 크기를 늘립니다. |
오류 메시지 | 문제 해결 |
---|---|
할당량을 초과했습니다. | 분당 또는 일일 할당량 한도에 도달했습니다. Cloud SQL의 할당량 및 한도를 검토합니다.
Google Cloud Console에서 할당량 증가를 요청합니다. |
오류 메시지 | 문제 해결 |
---|---|
나머지 연결 슬롯이 예약되었습니다. | 허용된 최대 연결에 도달했습니다.
|
요청에 유효한 API 키가 없습니다. | 유효한 서비스 계정 키 JSON 파일이 없거나 예상 위치에 저장되지 않았을 수 있습니다.
|
오류 메시지 | 문제 해결 |
---|---|
지정된 키가 너무 깁니다. 최대 키 길이는 767바이트입니다. | 외부 기본 인스턴스에는 innodb_large_prefix 변수가 설정되어 있을 수 있습니다.
복제본을 만들 때 |
SSL 오류: 잘못된 패딩. | 서버 인증서 오류입니다.
새 서버 인증서를 만들고 rotate합니다. |
시스템 오류가 발생했습니다. |
해결 방법:
|
오류 메시지 | 문제 해결 |
---|---|
테이블 정의가 변경되었습니다. | 내보내기 프로세스 중에 테이블에서 변경 사항이 발생했습니다.
내보내기 작업 중에 다음 문을 사용하면 덤프 트랜잭션이 실패할 수 있습니다.
덤프 작업에서 이러한 문을 삭제합니다. |
임시 파일 크기가 temp_file_limit를 초과합니다. | temp_file_limit 플래그가 데이터베이스 사용량에 비해 너무 낮게 설정되어 있습니다.
|
db.table 테이블이 없습니다. | MySQL 재시작 이후 하나 이상의 InnoDB 테이블이 사라지고 MySQL 오류 로그에 다음과 같은 경고가 동시에 발생한다면 외래 키와 참조된 키 열이 동기화되지 않았기 때문입니다.
[Warning] InnoDB: Load table db.table failed, the table has missing foreign key indexes. Turn off 'foreign_key_checks' and try again. [Warning] InnoDB: Cannot open table db/table from the internal data dictionary of InnoDB though the .frm file for the table exists. See InnoDB troubleshooting for more information. 데이터베이스를 다시 시작하면 MySQL에서 처음 액세스할 때 테이블을 InnoDB 사전 캐시에 로드해야 합니다. 불일치가 감지되면 해당 테이블에 대한 액세스를 차단합니다. mysql> select * from db.table; ERROR 1146 (42S02): Table db.table doesn't exist MySQL 세션에 대해 더 이상 문제가 발생하지 않도록 외래 키 불일치를 수정해야 합니다.
|
내보내기 중입니다(제한 시간). | CSV 형식과 SQL 형식은 내보내기 방식이 서로 다릅니다. SQL 형식은 전체 데이터베이스를 포함하며, 완료하는 데 더 많은 시간이 걸릴 수 있습니다.
CSV 형식을 사용하고 여러 개의 작은 내보내기 작업을 실행하여 각 작업의 크기와 길이를 줄입니다. |
연결이 너무 많습니다. | max_connections 플래그 값을 너무 높게 설정하면 이 오류가 발생할 수 있습니다. 플래그를 순서와 다르게 사용 설정해도 이 문제가 발생할 수 있습니다.
|
오류 메시지 | 문제 해결 |
---|---|
연결 권한이 없습니다. | 승인은 다양한 수준에서 발생하므로 원인이 다양할 수 있습니다.
해결 방법:
|
information_schema에서 알 수 없는 테이블 COLUMN_STATISTICS . |
이는 MySQL 8.0의 mysqldump 바이너리를 사용하여 MySQL 5.7 데이터베이스에서 데이터를 덤프하고 MySQL 8.0 데이터베이스로 가져오는 경우에 발생합니다.
MySQL 5.7 데이터베이스에서 데이터를 덤프하고 MySQL 8.0 데이터베이스로 가져오는 경우 MySQL 5.7의 |
오류 메시지 | 문제 해결 |
---|---|
x509: 인증서에 유효한 이름이 없습니다. | 알려진 문제: 현재 Cloud SQL 프록시 다이얼러는 Go 1.15와 호환되지 않습니다.
해결될 때까지 해결 방법이 나와 있는 GitHub의 토론을 참조하세요. |
알 수 없는 오류
다음 표는 Unknown Error
가 발생할 수 있는 몇 가지 알려진 사례를 보여주며, 해당하는 경우 특정 해결 방법을 보여줍니다. 하지만 이것이 전체 목록은 아닙니다. 이 표에서 자신의 사례를 찾을 수 없으면 Cloud SQL의 공개 Issue Tracker로 확인하세요.
여기에서도 문제를 찾을 수 없으면 보고서를 제출하거나 기타 지원 옵션을 검토할 수 있습니다.
작업 | 문제 원인 | 해결 방법 |
---|---|---|
사용자 추가 | 사용자가 데이터베이스에 이미 있을 때 사용자를 추가하려고 시도하면 이 오류가 발생할 수 있습니다. | 사용자가 데이터베이스에 존재하지 않는지 확인합니다. |
백업 | 자동 또는 수동 백업 중에 이 오류가 표시되면 인스턴스 디스크가 가득 찼을 수 있습니다. | 임시 파일 크기가 너무 많은 공간을 차지하는 경우 인스턴스를 다시 시작하여 해당 파일을 삭제하고 디스크 공간을 확보할 수 있습니다. 그렇지 않으면 인스턴스를 더 큰 디스크 크기로 업그레이드해야 할 수 있습니다. |
클론 | 이 오류는 선택한 영역에 리소스가 부족할 때 발생할 수 있습니다. | 리전의 다른 영역을 사용해 보거나 잠시 기다린 후 다시 시도하세요. |
인스턴스 만들기 |
|
|
복제본 만들기 | 로그 파일에 더 구체적인 오류가 있을 수 있습니다. | Cloud Logging의 로그를 검사하여 실제 오류를 찾습니다.
오류가 오류가 |
내보내기 | 데이터베이스를 Cloud Storage 버킷으로 내보내는 중 이 오류가 발생하면 전송 실패 이유가 대역폭 문제 때문일 수 있습니다. | Cloud SQL 인스턴스가 Cloud Storage 버킷과 다른 리전에 있을 수 있습니다. 한 대륙에서 데이터를 읽어 다른 대륙에 쓰려면 많은 네트워크 사용량이 필요하며, 이러한 간헐적인 문제를 일으킬 수 있습니다. |
장애 조치(기존) | 기존 장애 조치 구성을 사용하는 경우 장애 조치 복제본 머신이 장애 조치를 처리할 만큼 크지 않을 때 이 문제가 발생할 수 있습니다. | 가장 좋은 해결 방법은 현재 고가용성 구성으로 마이그레이션하는 것입니다. 그렇지 않으면 장애 조치 복제본을 더 큰 머신으로 업데이트해야 합니다. |
장애 조치(자동) | 서비스에서 기본 인스턴스가 계속 응답하고 있는 것으로 감지되면 자동 장애 조치 작업으로 이 오류 메시지가 생성될 수 있습니다. | 이 경우에는 수행할 작업이 없습니다. 장애 조치가 필요하지 않기 때문에 수행되지 않습니다. |
가져오기 | 가져오기 파일에 수퍼유저 역할이 필요한 문이 포함되었을 수 있습니다. | 파일을 수정하여 수퍼유저 역할이 필요한 모든 문을 삭제합니다. |
또한 Cloud SQL에는 일부 타사 바이너리(예: mysqld
)가 사용되며, 이로 인해 알 수 없는 오류 메시지가 생성될 수 있습니다. 이러한 오류는 해당 타사 바이너리의 내부 문제이며 Cloud SQL의 범위를 벗어납니다.
하지만 경우에 따라 동시에 보다 구체적인 오류가 Cloud SQL 로그 파일에서 발견될 수 있습니다.
또한 이것이 알 수 없는 오류 코드인 경우도 있습니다. 이럴 때 전체 메시지는 Unknown Error Code
일 수 있습니다.