CentOS 7 , MariaDB 10.4 입니다.
Charset : utf8
Collation : utf8_general_ci
로 운영중입니다.
[root@STG ~]# mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 10.4.18-MariaDB-log MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> status;
--------------
mysql Ver 15.1 Distrib 10.4.18-MariaDB, for Linux (x86_64) using readline 5.1
Connection id: 9
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server: MariaDB
Server version: 10.4.18-MariaDB-log MariaDB Server
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /data/mysql/mysql.sock
Uptime: 16 sec
Threads: 7 Questions: 4 Slow queries: 0 Opens: 17 Flush tables: 1 Open tables: 11 Queries per second avg: 0.250
--------------
MariaDB [(none)]>
이모지 입력 이슈가 있어서 좀 찾아 보니 4byte 유니코드를 모두 지원하는 utf8mb4 로 변경을 해야 한다고 해서
필요한 특정 테이블만 바꿔서 시도 했는데 잘 안되네요.
ALTER TABLE IMOJIE_TEST CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
인서트를 하면
SQL Error [1366] [22007]: (conn=22) Incorrect string value: '\xF0\x9F\x8E\xB4 \xEB...' for column `my_database`.`imojie_test`.`CONTENT` at row 1
현대 운영DB의 DISK 사용률이 72%라 전체 데이터베이스를 변경하기엔 용량 문제가 생길 것 같습니다.
결국 꼼수로 DB에서 꺼내와서 특정 문자열을 이모지코드로 변경하는 방법을 생각하고 있는데...
특정 테이블만 변경할 수는 없을 까요?
만약 전체 database 와 테이블을 모두 utf8mb4로 변경한다면 테이블 용량이 25%쯤 증가 한다고 보면 될까요?
|