리눅스 MySQL 접근시 인코딩 에러 발생함
-> 한글 깨짐 현상
해결법:
DB설정
MySQL에서 명시적으로 캐릭터셋을 설정하지 않으면 기본 캐릭터셋이 적용됨 -> latin1
MySQL의 config 파일(my.cnf)에 인코딩 속성을 적용해줘야한다고 함.
- whereis mysql (MySQL의 config 파일 위치 찾기)
- cd /etc/mysql (my.cnf파일이 있는 폴더로 이동)
- sudo vi my.cnf (root 권한으로 아래 내용을 설정파일의 제일 밑에 입력 후, 저장)
[mysql]
default-character-set = utf8
[client]
default-character-set = utf8
[mysqld]
character-set-server = utf8
collation-server = utf8_general_ci
init_connect=’SET NAMES utf8’
- sudo service mysql(mysqld) restart (MySQL 서비스 재시작)
- 설정이 끝났으면 캐릭터셋을 확인하기 위해 MySQL에 접속해 다음의 명령어를 입력.
status;
또는,
SHOW VARIABLES LIKE 'char%';
SHOW VARIABLES LIKE 'collation%';
utf-8로 되어있으면 캐릭터셋 설정 완료.
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
이미 생성된 테이블은 생성 당시의 캐릭터셋으로 만들어져 있기 때문에 추가적으로 테이블의 캐릭터셋을 변경해야함.
1.생성된 테이블의 정보 확인. (테이블 정보 제일 밑에 DEFAULT CHARSET이 표시됨)
SHOW CREATE TABLE table_name;
2.utf-8로 테이블의 캐릭터셋 변경.
ALTER TABLE table_name CONVERT TO character SET utf8;
3.1번 명령어로 변경되었는지 확인.
출처:
https://hongsii.github.io/2017/10/15/mysql-%ED%95%9C%EA%B8%80-%EA%B9%A8%EC%A7%90-%EB%AC%B8%EC%A0%9C/
'Cloud & SERVER > DB' 카테고리의 다른 글
[My SQL] 리눅스 환경에서 외부에서 DB 접근 허용하기 (공동작업DB) (0) | 2023.05.25 |
---|---|
[My SQL]콘솔 명령어 (접속 및 로그인,비밀번호 변경, 데이터베이스 관리) (0) | 2023.05.25 |
[My SQL] MySQL 리눅스 환경에 설치하기 (0) | 2023.05.25 |