# 1273 – 알 수없는 데이터 정렬 : 'utf8mb4_unicode_520_ci'


157

로컬 WAMP 서버 에 WordPress 웹 사이트가 있습니다. 그러나 데이터베이스를 라이브 서버에 업로드하면 오류가 발생합니다.

#1273  Unknown collation: utf8mb4_unicode_520_ci

도움을 주시면 감사하겠습니다!


37
sed -i 's/utf8mb4_unicode_520_ci/utf8mb4_unicode_ci/g' file.sql
Nabil Kadimi

4
아래의 찾기 및 바꾸기 솔루션의 바다에서 @SherylHohman의 답변을 먼저 확인하는 것을 잊지 마십시오. 서버 가이 데이터 정렬을 지원하도록 mariadb / mysql 5.6으로 업그레이드하십시오.
squarecandy


여기에 빠른 가이드 ( wpza.net/unknown-collation-utf8mb4_unicode_520_ci )가 있으며 모든 작업을 완료하기 위해 수행해야하는 3 단계를 모두 설명합니다.
WPZA

# 1273에 대해이 솔루션을 확인하십시오-알 수없는 데이터 정렬 : 'utf8mb4_0900_ai_ci'freakyjolly.com/
Code Spy

답변:


217

당신은 이것을 찾아서 해결할 수 있습니다

ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;

당신의 .sql파일과 함께 교환

ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

28
Sabba ( stackoverflow.com/a/44122258/168309 ) 의 대답 은 utf8mb4
Amir

5
@Sabba Keynejad의 아래 솔루션은 mb4를 유지하기 때문에 먼저 생각해야합니다.
Maor Barazany

참고로 SQL 파일의 여러 위치에서 이것을 대체해야했습니다. 또한 아래에서 stackoverflow.com/a/44122258/1436129 를 수행 해야하는 장소도있었습니다 .
aubreypwd

실제로이 답변은 Sabba의 연계 답변이 그렇지 않은 경우 효과가 있음을 알았습니다. 아마도 MySql 설치 기본값 때문일 것입니다. +1
사라짐 코딩

: 지금은 오류를주고, 작동하지 않는 COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'utf8mb4' , 내가 대체했다 utf8mb4_unicode_520_ci으로 utf8mb4_unicode_ci그것은 Sabba의 대답에 따라, 일하고있어.
Haritsinh Gohil

286

로컬 서버와 라이브 서버가 다른 버전의 MySQL을 실행하고 있기 때문에이 오류가 발생했다고 생각합니다. 이 문제를 해결하려면

  1. 텍스트 편집기에서 sql 파일을여십시오
  2. 찾기 및 모두 바꾸기 utf8mb4_unicode_520_ciutf8mb4_unicode_ci
  3. 새로운 mySql DB 저장 및 업로드

희망이 도움이여기에 이미지 설명을 입력하십시오


4
안돼! 널리 것을 문서화 된 utf8mb4_unicode_520_ci훨씬 보다 더 나은 UTF-8을 지원 utf8mb4_unicode_ci! 소스 : mysql.rjweb.org/doc.php/charcoll#best_practice 시각적 설명과 함께 520_ci가 우수함 : mysql.rjweb.org/utf8_collations.html
John

5
@John, 당신이 링크 한 기사는 그 의견을 실제로 방어하지 않습니다. 그들의 "따라서"는 그들의 전제에서 제대로 언급조차 할 수 없습니다. 좋은 정보가있는 것처럼 보이지만 전체 기사가 제대로 작성되지 않았습니다. 520 데이터 정렬은 가중치가 다른 최신 버전의 Unicode Collation Algorithm (UCA-버전 5.2.0)을 사용하지만 "UTF-8 지원이 훨씬 뛰어납니다"라는 말은 단순한 확장이 아닙니다.
Gremio

표준 본문 (유니 코드)이 일반적으로 각 최신 버전 (5.20)을 이전 버전 (4.0)보다 "더 나은"것으로 가정합니다.
Rick James

이것이 가장 좋은 대답입니다.
Niby

모든 "utf8mb4_unicode_520_ci"발생을 대체하기 때문에이 솔루션을 제안합니다. savani sandip 답변은 일부를 남깁니다.
Rakesh

49

내 경우에는 내 밝혀
새로운 서버가 실행 MySQL 5.5,
기존 서버가 실행되었다 MySQL 5.6. 이전 서버에서 내 보낸 파일
을 가져 오려고 할 때이 오류가 발생했습니다 .sql.

MySQL 5.5는 지원하지 utf8mb4_unicode_520_ci않지만
MySQL 5.6은 지원 합니다.

MySQL 5.6새 서버에서 업데이트하면 데이터 정렬 오류가 해결되었습니다!

MySQL 5.5를 유지하려는 경우 다음을 수행 할 수 있습니다
.-내 보낸 .sql파일 의 복사본 만들기
-인스턴스 교체 utf8mb4unicode520_ciutf8mb4_unicode_520_ci
...로 utf8mb4_unicode_ci
-업데이트 된 .sql파일 가져 오기


2
서버를 완전히 제어 할 수있는 경우이 방법을 사용하는 것이 가장 좋습니다. 기존 서버와 일치하도록 새 서버를 업그레이드하십시오. 새 서버 위치를 업그레이드 할 수있는 액세스 권한이없는 경우 find-replace 방법이 정상일 수 있지만, 대신이 업그레이드를 수행 할 수있는 경우가 있습니다.
squarecandy

1
5.6은 520 이 추가 된 시점 입니다.
Rick James

이것이 정답이어야합니다. 다른 솔루션의 대부분은 해킹과 비슷합니다. 감사 @SherylHohman
sawyerrken

30

텍스트 편집기에서 sql 파일을여십시오.

1. 검색 : utf8mb4_unicode_ci 바꾸기 : utf8_general_ci (모두 바꾸기)

2. 검색 : utf8mb4_unicode_520_ci 바꾸기 : utf8_general_ci (모두 바꾸기)

3. 검색 : utf8mb4 교체 : utf8 (모두 바꾸기)

저장하고 업로드하십시오!


나는 이것에 대한 당신의 해결책을 발견해서 정말 기쁘고, 며칠 동안이 # 1273 오류가 발생했고 이것에 대한 해결책을 찾을 수 없었습니다.
flying-dev

생명의 은인. 감사!
robbclarke


14

쉽게 교체

sed -i 's/utf8mb4_unicode_520_ci/utf8mb4_unicode_ci/g' your_sql_file.sql

2
macOS :sed -i '' 's/utf8mb4_unicode_520_ci/utf8mb4_unicode_ci/g' your_sql_file.sql
Osvaldas


6

찾아서 교체하십시오.

utf8mb4_unicode_520_ci

utf8_general_ci

전체 SQL 파일에서


3
general그리고 utf8두 단계 뒤로 이동합니다.
Rick James

3

파티에 늦었지만 WORDPRESS설치 와 함께 발생하는 경우 :

#1273 - Unknown collation: 'utf8mb4_unicode_520_ci

phpmyadmin의 export method> Format-specific options(custom export) 아래

로 설정 : MYSQL40

지금 가져 오려고하면 다른 오류 메시지가 표시 될 수 있습니다.

1064 - You have an error in your SQL syntax; .....

MySQL 5.5에서는 TYPE동의어였던 이전 옵션 ENGINE이 제거 되었기 때문 입니다.

.sql파일을 열고 모든 인스턴스를 검색하고 바꿉니다.

에서 TYPE=ENGINE=

이제 가져 오기가 순조롭게 진행됩니다.


3

데이터 정렬 오류 # 1273 – 알 수없는 데이터 정렬 : 'utf8mb4_unicode_520_ci'는 내보내는 MySQL 버전과 가져 오는 MySQL 서버의 차이로 인해 발생합니다. 기본적으로 최신 버전의 Wordpress 라이브러리는 사이트에서 실행중인 SQL 버전을 확인합니다. MySQL 버전 5.6 이상을 사용하는 경우 "utf8mb4_unicode_520_ci"라고하는 새롭고 향상된 UCA (Unicode Collation Algorithm)를 사용한다고 가정합니다. 이것은 WordPress 사이트를 최신 5.6 버전의 MySQL에서 5.6 이전의 MySQL 버전으로 옮기지 않는 한 좋습니다.

이 문제를 해결하려면 SQL 내보내기 파일을 편집하고 검색 및 교체를 수행하여 'utf8mb4_unicode_520_ci'의 모든 인스턴스를 'utf8mb4_unicode_ci'로 변경해야합니다. 또는 PHPMyAdmin이있는 경우 아래 단계를 따르십시오.

  1. 데이터베이스의 내보내기 탭을 클릭하십시오
  2. Custom 라디오 버튼을 클릭하십시오.
  3. 형식 별 옵션 섹션으로 이동하여 데이터베이스 시스템 또는 이전 MySQL 서버의 드롭 다운을 변경하여 NONE에서 MYSQL40까지의 출력 호환성을 최대화하십시오.
  4. 하단으로 스크롤하여 이동을 클릭하십시오.

1

내 경우에는 다음과 utf8_general_ci같이 sed로 대체합니다 .

sed -i 's/utf8_0900_ai_ci/utf8_general_ci/g' MY_DB.sql 
sed -i 's/utf8mb4_unicode_520_ci/utf8_general_ci/g' MY_DB.sql 

그 후 문제없이 가져올 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.