일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- #spring boot
- com.netflix.zuul.exception.ZuulException
- java collection
- CORS policy: No 'Access-Control-Allow-Origin'
- mariadb 한국어
- #actuator
- message protocol
- cors
- xrdp
- #spring boot admin
- IOT
- Hystrix Read time out
- backtracking
- mosquitto
- HashMap
- Access-Control-Allow-Origin
- db utf8
- mysql 다국어
- 원격
- ArrayList
- emqx
- com.netflix.zuul.exception.ZuulException: Hystrix Readed time out
- 크로스도메인
- #MSA
- mqtt
- mariadb 다국어
- mstsc
- mysql 한국어
- Set
- TreeMap
- Today
- Total
miin29na
MariaDB/MySql 다국어 지원(utf8, utf8mb4) 본문
MariaDB 에서 컬럼에 한국어 데이터를 저장 -> 다음과 같은 오류 발생
/* SQL 류 (1366): Incorrect string value: '\xEA\xB0\x80"}' for column `database`.`table`.`column` at row 1 */
한국어 뿐 아니라 아시아계 언어들에 대해 오류 발생
설정 확인
mysql> show variables like 'c%';
- 다국어를 처리할 수 있는 UTF-8 저장방식이 있으므로 설정을 해줘야 한다. UTF-8 : 가변 4바이트
- 전세계 모든 언어 문자는 3바이트가 안되므로 공간절약, 속도향상을 위해서는 utf8은 가변 3바이트로 설계 되었다.
- Emoji 같은 새로나온 문자는 utf8 로 지원이 안된다.
- mysql/mariadb 는 version 5.5 이후부터 가변 4바이트 자료형인 utf8mb4 를 추가
해결 1) Table 에만 utf8 적용
ALTER DATABASE [database 이름 ] DEFAULT CHARACTER SET utf8 COLLATE UTF8_GENERAL_CI;
ALTER TABLE [table 이름] CONVERT TO CHARACTER SET utf8 COLLATE UTF8_UNICODE_CI;
-> Table 에만 적용 경우, Join 의 경우 오류 발생. 안전하게 DB 자체에 utf8 적용을 권장!
해결 2) DB engine 자체 utf8 적용
Linux : vi /etc/my.cnf
Windows : my.ini
i) utf8 로 셋팅하는 경우
[mysqld] ... collation-server =utf8_general_ci character-set-server = utf8
[client] ... default-character-set = utf8 |
ii) utf8mb4 로 셋팅하는 경우
[mysqld] ... collation-server =utf8mb4_unicode_ci character-set-server = utf8mb3
[client] ... default-character-set = utf8mb4 |
'IT > database' 카테고리의 다른 글
[Mysql] MySql 외부 접근 허용 (0) | 2020.02.11 |
---|