MySQL 문자 집합 확인 및 변경

MySQL 문자 집합 확인 및 변경

1. 서버의 캐릭터셋 확인

mysql> 표시 문자 집합 ; ///사용 가능한 문자 집합 유형 확인
mysql> show charset where description like ‘%Korean%’ ;
// /description 컬럼에서 한글 단어가 포함된 문자 집합 찾기

문자 집합을 확인하는 쉬운 방법

mysql> 상태
서버 문자 집합: latin1
DB 문자 집합: latin1
클라이언트 문자 집합: utf8
연결 문자 집합: utf8

================================================== ===================
Server Character Set : 데이터베이스 생성 시 기본값을 지정하지 않으면 이 값으로 데이터베이스 문자셋이 설정됩니다.


DB 문자셋: 테이블 생성 시 기본값을 지정하지 않으면 이 값으로 테이블의 문자셋이 설정된다.


클라이언트 문자 집합: 클라이언트 인코딩 설정 값입니다.


================================================== ===================

서버에서 데이터베이스의 기본 문자 집합 설정

생성 시 지정 방법
데이터베이스 생성 `utf8db` 기본 문자 설정 utf8 COLLATE utf8_general_ci ;
데이터베이스 생성 `euekrdb` 기본 문자 설정 euckr COLLATE euckr_korean_ci ;

alter 명령을 사용하여 변경하는 방법
ALTER DATABASE dbname 기본 문자 세트 utf8 ;

데이터베이스 문자 집합 확인
SELECT schema_name , default_character_set_name
FROM information_schema.schemata ;

테이블의 문자셋 설정 및 확인
CREATE TABLE tablename (id int , name varchar(10)) DEFAULT CHARSET=utf8 ;
SELECT 테이블 스키마 , 테이블 이름 , 테이블 순서
FROM information_schema.tables
WHERE 테이블 스키마 = ‘정보 스키마’ AND 테이블 이름 = ‘PROCESS-LIST’

임시 변경
mysql> 레코드 이름 문자 집합 ;
mysql> set name latin1 ;

서버 외부에서 데이터베이스 기본 문자 집합 설정

끊임없는 변화
/etc/my.cnf 파일에서 문자 집합을 지정한 후 MySQL을 다시 시작합니다.

예) utf8로 변경하는 경우

(고객)
기본 문자 집합=utf8

(mysql)
문자 세트 클라이언트 핸드셰이크 건너뛰기
기본 문자 집합=utf8
문자 집합 서버=utf8
데이터 정렬 서버=utf8_general_ci
초기화-연결=이름 설정 utf8

(mysqldump)
기본 문자 집합=utf8
동일한 mysql 5 인 것 같습니다.

5.5랑 좀 다른건가… 위의 작업을 하면 mysql이 실행도 되지 않는다.


그래서 이렇게 바꾸니 euckr의 모든 언어셋이 바뀌었습니다.

————————————————– ——————————————–
(고객)
기본 문자 세트=euckr

(마이SQL)
character_set_server=euckr

(mysqldump)
character_set_server = euckr

(mysql)
기본 문자 세트=euckr
————————————————– ——————————————–

그리고 특정 데이터베이스의 전체 언어 집합을 변경하는 쿼리문

(어커)
데이터베이스 변경(DB명) 기본 문자셋 euckr collate euckr_korean_ci;

(utf8)
데이터베이스 변경(DB 이름) 기본 문자 집합 utf8 collate utf8_general_ci;