티스토리 뷰
한글과 세종대왕님을 사랑하지만, 컴퓨터의 세계에서는 아니다.
최근 aws rds 를 사용하며 겪은 한글문제를 기술한다.
최선은 rds를 서비스 오픈전에 charset을 모두 utf-8로 변경하는것이다.
아래 명령을 수행해서 나오는 모든값을 utf-8로 변경하자.
SHOW variables LIKE '%character_set%';
SHOW variables LIKE '%colla%';
나의 경우는 테스트와 리얼서버 설정이 달랐다.
리얼서버 설정을 변경하면 되지라고 생각할수 있지만, 상용으로 운영중인 서버의 설정을 변경하는 결정은 쉬운일이 아니다.
[상용서버]
[테스트 서버]
테스트 서버에서 열심히 테스트후 상용서버에서 문제발생하는 경우 난감하다.
java의 경우 아래와 같이 jdbc url에 파라메터 옵션을 주어 해결했다.
dataSource.url=jdbc:mysql://hello.rds.amazonaws.com/event_v1?useUnicode=true&characterEncoding=utf8&nullNamePatternMatchesAll=true
python의 경우 charset을 utf-8로 설정하고, 쿼리 실행전에 set names 'utf8'을 수행하면 된다는 글이 있어 실행했으나 해결되지 않았다.
결국 table의 속성을 변경하여 해결하였다.
ALTER TABLE pci_mp3_info CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
ALTER TABLE pci_mp3_info DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
ALTER TABLE pci_mp3_info CHANGE addr1 addr1 varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci;
ALTER TABLE pci_mp3_info CHANGE addr2 addr2 varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci;
ALTER TABLE pci_mp3_info CHANGE addr3 addr3 varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci;
ALTER TABLE pci_mp3_info CHANGE addr4 addr4 varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci;
참고 : https://stackoverflow.com/questions/1168036/how-to-fix-incorrect-string-value-errors
일정에 치이며 하루하루 삽질하는 개발자이다.
뭐가 원인이고 DB에서 캐릭터셋과 테이블단위의 설정이 어떻게 다른지 궁금하기도 하지만 일단 해결되었음에 감사하다.
다시한번 강조하고 싶은 내용은,,,
나중에 삽질하지말고, 초기에 모든 설정을 utf-8로 해두는것이 최선이것 같다.
'aws' 카테고리의 다른 글
ubuntu oracle java8 설치하기 (0) | 2018.06.26 |
---|---|
aws vpc 설정 개념잡기 좋은 동영상 (0) | 2018.06.07 |
aws RDS 생성중 VPC 관련 에러가 발생하는 경우 (0) | 2018.06.07 |
- Total
- Today
- Yesterday
- pragmatic programmer
- RDS
- webpack
- 리플리카
- pyenv
- js export default
- 유시민의 글쓰기 특강
- tslint
- Python
- vue.js
- aws rds
- vetur
- dns
- 개발자 유시민
- 정규표현식
- vuex
- js import
- mysql
- 리팩터링
- Refactoring
- Vue
- AWS
- getters
- js export
- Regex
- 실용주의 프로그래머
- Regular Expression
- webpac-simple
- a record
- vue cli
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |