(해결됨) 알 수 없는 데이터 정렬: utf8mb4_0900_ai_ci

(해결됨) 알 수 없는 데이터 정렬: utf8mb4_0900_ai_ci

2022-10-18 last update

4 minutes reading FAQ MySQL
데이터 정렬은 데이터베이스 서버에서 문자열을 비교하고 정렬하는 방법을 정의하는 일련의 규칙입니다. 이 튜토리얼에서는 다른 서버에서 데이터베이스를 복원하는 동안 발생한 오류에 대해 설명합니다. 최근에 발생한 문제와 해결 방법을 살펴보겠습니다.

문제

웹 응용 프로그램을 마이그레이션하는 동안 데이터베이스를 복원하는 동안 아래 오류가 발생했습니다. 다른 서버. 데이터 정렬 ID는 MySQL 버전에 따라 다를 수 있습니다. 오류 메시지:
Error 1273 (HY000) at line 25 Unknown collation: 'utf8mb4_0900_ai_ci'
데이터베이스 복원 중 오류 스크린샷을 참조하십시오. 여기에 솔루션이 있습니다.

해결책

약간의 조사 후에 대상에서 실행 중인 MySQL 서버가 소스보다 이전 버전임을 발견했습니다. 따라서 대상 서버에 필요한 데이터베이스 데이터 정렬이 포함되어 있지 않다는 것을 알게 되었습니다. 그런 다음 이 문제를 해결하기 위해 백업 파일을 약간 조정합니다. 텍스트 편집기에서 데이터베이스 백업 파일을 편집하고 "utf8mb4_0900_ai_ci"를 "utf8mb4_general_ci"로, "CHARSET=utf8mb4"를 "CHARSET=utf8"로 바꿉니다. 아래 문자열
ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
로 바꿉니다. 파일을 저장하고 데이터베이스를 복원합니다. .Linux 시스템 사용자는 sed command을 사용하여 파일의 텍스트를 직접 바꿀 수 있습니다.
sed -i 's/utf8mb4_0900_ai_ci/utf8_general_ci/g' backup.sql  
sed -i 's/CHARSET=utf8mb4/CHARSET=utf8/g' backup.sql  
그. 위의 변경 후 데이터베이스가 성공적으로 복원되었습니다! "알 수 없는 데이터 정렬: 'utf8mb4_0900_ai_ci'"문제를 해결하는 데 이 솔루션이 도움이 되었기를 바랍니다.