워드프레스 이모지emoji 저장 에러

🤔🤨🥰 워드프레스 이모지 저장 안 될 때😍😋😑🙄

아마존 라이트세일에서 Bitnami 자동설치로 워드프레스를 설치하여 이용하는 사용자가 제목 또는 본문에 이모지emoji 문자를 저장하지 못하게 되거나, 또는 처음부터 저장할 수 없었다는 사실을 깨닫게 되었을 때 해결하는 방법을 정리합니다.

DB를 건드리는 작업이므로 시작하기 전에 백업은 필수입니다.

1. 문제의 원인과 현상

1.1. 문자셋 utf8mb4

저도 잘 모르지만 … 대충 정리하면 이 문제는 데이터베이스의 문자셋characterset 과 관련된 것으로,

  • MySQL 은 설치하면 기본 latin-1 문자셋으로 서버에 세팅
  • Latin-1 은 글자 하나 표현할 때 2 바이트 사용. 하지만 한중일 문자는 최소 3바이트씩 잡아 먹어서 ..
  • 이제 UTF-8 문자셋 설정해서 많이 씀
  • 그런데 요즘은 이모지 문자도 많이 쓰게 되었음.. 게다가 계속 추가되는 한자 문자도 있고 … 한 글자당 4 바이트가 필요한 경우가 발생
  • UTF-8은 최대 3바이트 표현이 한계. 원래 만들 때는 4바이트 가능하도록 만들었다지만 MySQL에서 UTF-8을 사용할 때는 3바이트까지만 쓸 수 있도록 했다는데 왜 그런지 모름 ;;
  • 여튼 MySQL에서 4바이트 문자를 표현하려면 utf8mb4 문자셋 설정 필요. 이것은 2010년부터 지원.
  • 향후 다른 프로그램과의 호환 문제를 예방하기 위해서라도 utf8mb4 문자셋을 사용하자

1.2. 문제 현상

어떤 이유로 제목이나 본문에 이모지 문자 😀 가 들어가면 에러를 뱉으면서 저장이 되지 않습니다. 보통 “can not update in the database…” 어쩌구 뱉으면서 경고 문구 보이네요.

2. 문제의 해결

이 순서가 맞는지 모르겠는데 … 제가 해결한 순서는 이렇습니다.

  1. DB 설정의 기본 문자셋을 변경
  2. wp-config.php 를 수정
  3. 수정되지 않은 테이블별로 캐릭터셋을 다시 수정 적용

2.1. DB 설정파일 편집

wp-config.php 파일을 ftp로 확보합니다. db_name, db_user, db_password 안에 적혀 있습니다.

sudo vi /opt/bitnami/mariadb/conf/my.cnf 

db 설정파일 편집해서 문자열을 수정합니다. 아래와 같이 캐릭터셋 부분을 주로 수정해주고 없는 줄은 새로 적어 넣어주면 됩니다.

[mysqladmin]
default-character-set=utf8mb4

[mysqld]
skip-character-set-client-handshake
init_connect="SET collation_connection=utf8mb4_unicode_ci"
init_connect="SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci"
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

[mysqldump]
default-character-set=utf8mb4

2.2. wp-config.php

wp-config.php 파일 안의 기본 문자셋을 utf8mb4 로 변경하고 업로드, 덮어씁니다.

define( 'DB_CHARSET', 'utf8mb4' );
define( 'DB_COLLATE', '' );

2.3. phpmyadmin 에서 한방에 수정

명령어로 해도 되지만, 저는 초보라 결국 phpmyadmin에 접속했습니다. bitnami 매뉴얼 참고해서 phpmyadmin 실행해 워드프레스 DB 테이블 클릭, 모든 테이블의 문자열을 일괄 변경합니다. utf8mb4_unicode_ci 추천합니다.

여기까지 하고, 서버 재부팅 후 워드프레스에서 이모지가 포함된 글이 저장되는지 확인하면 되겠습니다.

3. 참고 링크

(2022년 7월)

🍋 내용이 유익했다면 이메일 주소를 적어주세요. 다음 글을 보내드립니다.

Join 27 other subscribers

Add comment

Tag cloud