[워드프레스] utf8mb4 문자셋 문제로 DB 이전에 실패하는 경우

Comments 74

개요

최근에 워드프레스 사이트를 마이그레이션하면서 utf8mb4 문자셋 관련 문제를 겪은 적이 있습니다. 당시에는 sql 파일을 직접 수정하여 문제를 해결했습니다. 이 글에서는 직접 sql 파일을 수정하지 않고도 문제를 해결하는 방법에 대해 간단히 설명하겠습니다.

이때까지 utf8 인코딩을 사용하는 것으로 알고 있는데, 왜 갑자기 utf8mb4 문제가 발생하는 것일까요? 워드프레스 문서에 의하면 WordPress 4.2에서 테이블을 (가능한 경우) utf8mb4로 업그레이드한다고 합니다. 사이트는 다음 조건을 만족하는 경우에만 업그레이드됩니다.

  • utf8 문자셋(char set)을 현재 사용 중이고
  • MySQL 서버 버전이 5.5.3 이상(MariaDB의 모든10.x 버전 포함)이고
  • MySQL 클라이언트 라이브러리 버전이 5.5.3 이상. mysqlnd, 5.0.9 이상을 사용하는 경우.

예를 들어 로컬에서 워드프레스 작업을 한 후에 실제 사이트로 이전하기 위해 DB를 옮길 때 다음과 같은 오류가 발생할 수 있습니다.

#1273 – Unknown collation: ‘utf8mb4_unicode_ci’

이런 오류가 발생하는 이유는 가져오기(Import)하려는 sql이 utf8mb4 인코딩을 사용하는 MySQL server version 5.5.3에서 만들어졌기 때문일 가능성이 높습니다.

실제로 Mac에서 로컬로 작업한 후에 실제 웹호스팅 서버로 이전하려는 경우에 이와 같은 문제가 나타나는 경우를 본 적이 있습니다. 이와 같은 문제가 발생하는 경우 다음과 같은 방법으로 문제를 해결할 수 있습니다.

먼저 DB 작업을 할 때에는 항상 백업을 해두도록 합니다. 이 작업을 수행하기 전에도 반드시 DB 백업을 하시기 바랍니다.

2017년 7월 추가: phpMyAdmin에서 커스텀 방법으로 DB 내보내기

아래의 내용은 잘 안 되는 경우가 많습니다. DB를 내보내기할 때 “호환성을 최대화 할 수 있는 데이터베이스 시스템 또는 예전 버전의 MySQL 서버“의 옵션을 MYSQL40으로 설정하면 문제가 해결될 수 있습니다.

하지만 이 방법을 사용해도 � 같은 이상한 문자가 많이 포함될 수 있다고 하네요. 그런 경우 TinyMCE WYSIWYG 편집기에서 문제를 일으킨다고 합니다. 페이지 많지 않으면 일일이 복사하여 붙여넣기 하면 되지만 그렇지 않으면 문제가 될 것 같습니다.

만약 이와 같이 이상한 문자가 포함되어 있는 경우에는 직접 sql 파일을 수정해야 할 것입니다. 이 같은 작업을 직접 하기가 어려우면 이 블로그의 서비스 문의란을 통해 서비스를 의뢰하실 수 있습니다.

플러그인 사용하기

WP Migrate DB

WP Migrate DB 플러그인을 사용하면 이런 문제를 해결할 수 있다고 합니다. 이 방법이 잘 안 되면 위에 설명된 수동으로 DB를 내보내기하는 방법을 사용하시기 바랍니다.

워드프레스 다운그레이드

WordPress 버전을 4.2 이전 버전으로 다운그레이드한 후에 DB를 내보내는 방법도 생각해볼 수 있습니다. 워드프레스 다운그레이드 방법은 이 글을 참고해보시기 바랍니다.

이상으로 ‘utf8mb4’ 문자셋 문제로 워드프레스 이전 시 문제가 발생하는 경우에 대처할 수 있는 방법에 대해 살펴보았습니다. 워드프레스 사이트를 이전하려는 경우 이 글을 참고해보시기 바랍니다.

Related Posts

Comments

이 글의 링크 복사