MySQL

MySQL 8.0 테이블생성 warning utf8 alias utf8mb3 utf8mb4

payy 2023. 12. 26. 22:02
반응형
반응형

mysql 8.0에서 character set utf8 로 테이블을 생성하려고 하니 warning(warning  code 3719) 이 발생하며 UTF8MB3 를 사용하라는 문구가 출력됐다.

UTF8MB3 라니 신기한 캐릭터셋을 목격했다.
 
호기심이 발동하여 mysql 도큐먼트를 탐색해봤다.
 
 
 

 utf8 has been used by MySQL is an alias for the utf8mb3 character set, but this usage is being phased out; as of MySQL 8.0.28, SHOW statements and columns of Information Schema tables display utf8mb3 instead

 
 
utf8 은 utf8mb3 의 alias 로 사용되어 왔으나, 단계적으론 없애고 있다..  MySQL 8.0.28 부터  SHOW 구문으로 테이블 명세를 확인할 때  utf8mb3로 표기하여 보여주고 있다.
그렇다 나의 mysql 버전은 8.0.27 이었다. (8.0.28 부터라며?;;)
 

utf8 is currently an alias for utf8mb3, but it is now deprecated as such, and utf8 is expected subsequently to become a reference to utf8mb4

utf8 은 utf8mb3 의 alias 이지만 deprecated 예정으로 향후(몇인지는 모르겠지만..)minor 버전에선 utf8 이 utf8mb4 의 alias 로 새롭게 변경될 예정이다. 따라서 utf8 이 어느시점에 utf8mb3 를 말하는것인지 utf8mb4를 말하는 것인지 모호한 시점이 올것이므로 utf8 캐릭터셋을 사용하면 warning 을 뱉는것이다!
 
대부분이 이런 경고 메세지를 무시하고 그냥 생성해온것으로 보인다.
 
경고문구
Warning Code : 3719
'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.
 
 

테스트

CREATE TABLE test (a INT) CHARACTER SET = utf8;

Mysql 8.0 에서 character set utf8 로 생성시 경고(warning) 발생
Mysql 8.0 에서 테이블을 character set utf8 로 생성시 경고(warning) 발생

 
 

결론!

mysql 8.0 에서 utf8 은 모호성을 띄고있으니 utf8mb3 또는 utf8mb4를 사용하고 warning 이라도 도큐먼트 보는것을 생활화하자!
 
 
+ 참고 mysql 도큐먼트
https://dev.mysql.com/doc/refman/8.0/en/charset-unicode-utf8.html

반응형