-
[mac] mysql 이모지 저장하기코딩/알고리즘 2021. 9. 6. 19:59
왠 오류?
이모지를 저장하려는데 오류를 뿜는경우가 생겼습니다.
알고보니 이모지를 저장하는데 문제가 생긴거였더라구요 .
왜 오류가 발생하는걸까요?
이유는 database의 charset이 utf8이여서 발생한 문제였습니다.
utf8과 utf8mb4의 차이점?
이모지와 같은 글자들은 글자당 최대 4bytes가 필요합니다
하지만 utf8은 글자당 최대 3bytes까지 지원하는 가변 자료형 입니다
따라서 가변 4bytes의 문자열을 저장할 수 있는 utf8mb4를 사용하면 이모지를 저장할 수 있습니다.
해결방법
간단합니다. 그냥 데이터베이스의 charset을 utf8mb4로 변경하면 됩니다.
일단 my.cnf를 찾아봅시다.
보통 etc/local에 있다는데 저같은 경우는 조금 먼 경로에 있었습니다.
이런 명령어를 터미널에 쳐봅시다.
mysql --help | grep my.cnf
이제 해당 경로에 서 cnf 파일을 열어봅시다
sudo my.cnf
그리고 다음과 같이 입력해주세요
[client] default-character-set = utf8mb4 [mysql] default-character-set = utf8mb4 [mysqld] character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci
저장후에 재시작을 해봅시다
mysql.server restart
Shutting down MySQL
.. SUCCESS!
Starting MySQL
. SUCCESS!성공.@ 별거없죠?
'코딩 > 알고리즘' 카테고리의 다른 글
[백준][자바][14499][주사위굴리기] (0) 2020.01.12 [백준][자바][파이프옮기기1]17070 (0) 2019.11.01 [백준][자바][17135]캐슬디펜스 (0) 2019.10.23 [백준][자바][9205]맥주 마시면서 걸어가기 (0) 2019.10.02 [백준][자바][5017]스타트링크 (0) 2019.10.01