티스토리 뷰
기본으로 설정된 utf8 charset에서는 4바이트로 표현 가능한 Emoji를 저장할 수 없다.
그래서 데이터베이스의 Charset을 utf8mb4로 변경해야 하는데,
1. 로컬에 설치된 Mysql인 경우 ( Ubuntu 기준 )
1-1. '/etc/mysql/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
1-2. '$ sudo service mysql restart'명령어로 mysql 서비스 재시작
1-3. > SHOW GLOBAL VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%' 쿼리로 정상적으로 변경되었는지 확인.
2. AWS RDS인 경우 ( Ubuntu 기준 )
먼저 AWS 콘솔 접속 -> RDS 서비스로 이동
2-1. RDS 인스턴스의 파라미터 그룹 추가 ( 기본 파라미터 그룹이 있지만 편집이 불가능 하므로 새로 만들어서 편집하도록 한다. )
2-2. 다음 내용 파라미터 값을 수정
character_set_client : utf8mb4
character_set_connection : utf8mb4
character_set_database : utf8mb4
character_set_results : utf8mb4
character_set_server : utf8mb4
collation_connection : utf8mb4_unicode_ci
collation_server : utf8mb4_unicode_ci
2-3. 저장 하게 되면 비동기로 천천히 변경되는 경우가 있지만 재시작 하는것을 추천한다. ( 비동기 처리가 끝난 뒤에도 변경되지 않는 경우가 있었다. )
2-4. 터미널이나 phpmyAdmin으로
> SHOW GLOBAL VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%' 쿼리를 실행해서 정상적으로 변경되었는지 확인.
----------------------------------------------------
** node 서버 프레임워크를 사용한다면 DB에서 쿼리로 값 받아올 때도 utf8mb4 charSet으로 받아와야 하기 때문에 db연결시에 다음 옵션이 꼭 들어가야한다.
[ Node 서버 코드 ]
var mysql = require('mysql');
const pool = mysql.createPool({
host : 'testHost',
user : root,
password : 'testPassword',
port : 3306,
database : 'testDatabase',
charset : 'utf8mb4'
connectionLimit : 10
});
- Total
- Today
- Yesterday
- uicollecionview
- ReactNative 한글
- mac command
- Podfile
- proguard
- DEX
- local
- cocoapods
- multidex
- multiple commands produce
- HTML
- idea
- F
- Gif
- Monterey
- zip
- jpeg
- WKwebview
- png
- 프로가드
- TextInput 한글
- env: python
- idea command
- 12.5
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |