mysql 데이터베이스 에서 문자 집합 오류 문제 원인 및 해결

머리말
때때로 우 리 는 데이터베이스 데 이 터 를 볼 때 어 지 러 운 코드 를 볼 수 있다.실제로 어떤 데이터베이스 에 도 어 지 러 운 문제 가 발생 하면 대부분 데이터베이스 문자 집합 설정 문제 때문이다.
다음은 데이터베이스 의 문자 집합 설정 과 어 지 러 운 문제 해결 을 소개 합 니 다.
mysql 데이터베이스 문자 집합
솔직히 말 하면 문 자 는 하나의 문자 와 같 습 니 다.인 코딩 은 모든 문자 에 대한 번호 와 같 습 니 다.문자 집합 은 문자 와 인 코딩 의 집합 과 같 습 니 다.검사 규칙 은 문자 집합 에 대응 하 는 정렬 규칙 이 고 문자 집합 에 대응 하 는 검사 규칙 은 언어 입 니 다.(모든 문자 집합 은 여러 가지 교정 규칙 이 있 지만 기본 적 인 교정 규칙 이 있 습 니 다)
my sql 데이터 베 이 스 는 문자 집합 을 설정 하여 해당 하 는 문자 집합 과 검사 규칙 을 사용 하여 문 자 를 구성 할 수 있 습 니 다.한 편의 문장 을 해석 할 때 그런 언어 로 해석 하 는 것 과 같다.예 를 들 어 중국인 들 이 자주 사용 하 는 utf 8 인 코딩 은 중국 어 를 대표 합 니 다.
my sql 은 여러 문자 집합 을 지원 할 수 있 습 니 다.같은 데이터베이스 의 다른 표,같은 표 의 다른 필드 에서 서로 다른 문자 집합 을 사용 할 수 있 습 니 다.
mysql 문자 집합 규칙
mysql 에서 설정 할 수 있 는 문자 집합:
서버 문자 집합
데이터베이스 문자 집합
표 의 문자 집합 글자4.567917.세그먼트 의 문자 집합한 단계 에 문자 집합 을 설정 하지 않 으 면 이전 단계 의 문자 집합 을 계승 합 니 다.
my sql 데이터베이스 어 지 러 운 문제 해결 방법(즉 문자 집합 방법 수정)
【1】mysql 에서 지원 하 는 문자 집합 보기

show character set;
这里写图片描述
【2】데이터베이스 인 코딩 보기

show variables like 'character_set%';
这里写图片描述
【3】현재 mysql 에서 사용 하 는 문자 집합 보기

show variables like 'character%';
这里写图片描述
해석:
character_set_client:클 라 이언 트 가 요청 한 데이터 의 문자 집합
character_set_connection:클 라 이언 트 와 서버 가 연 결 된 문자 집합
character_set_database:기본 데이터베이스 문자 집합;기본 데이터베이스 가 없 으 면 character 를 사용 합 니 다.set_server 에서 지정 한 문자 집합(임의로 변경 하지 않 는 것 을 권장 합 니 다)
character_set_filesystem:characterset_client 변환 characterset_filesystem(기본 값 은 binary 이 며,어떠한 변환 도 하지 않 습 니 다)
character_set_results:클 라 이언 트 에 게 되 돌아 오 는 문자 집합
character_set_server:데이터베이스 서버 의 기본 문자 집합
character_set_system:시스템 문자 집합,기본 utf 8.(데이터베이스 에 사용 할 표,열,디 렉 터 리 표 에 저 장 된 함수 의 이름)
character_sets_dir:mysql 문자 집합 파일 의 저장 경로
오류 발생 원인
character_set_client 와 실제 가 맞지 않 습 니 다.
character_set_results 와 클 라 이언 트 페이지 가 일치 하지 않 습 니 다.
【4】현재 데이터베이스 의 교정 규칙 보기

show variables like 'collation%';
这里写图片描述
해석:
value 의 이름 규칙:문자 집합 이름+언어+접미사
collation_connection:현재 연 결 된 문자 집합
collation_database:현재 날짜 의 기본 교정
collation_server:서버 의 기본 교정
접미사 의 의미:
대소 문자 구분 없 음
cs:대소 문자 구분
bin:바 이 너 리 정렬
【5】문자 집합 변경
난 코드 문제 해결(일반적으로 다음 과 같다)
<1>임시(현재 만 유효,종료 후 원래 설정 으로 다시 들 어가 기)

set character_set_client = 'utf8';
set character_set_connection = 'utf8';
set character_set_results = 'utf8';
혹시

set names utf8;
<2>영구(설정 파일 을 수정 하고 mysql 을 다시 시작 해 야 합 니 다)
my sql 의 my.cnf 설정 파일 에서 다음 을 수정 하거나 추가 합 니 다.

[client]
default-character-set = utf8 

[mysqld]
character_set_server = utf8 


[mysql]
default-character-set = utf8
비고
<1>
my sqld 아래 의 매개 변 수 는 my sql 5.5 인증 을 사용 한 후 아래 의 쓰기 가 모두 가능 합 니 다.밑줄 친 원인 으로 인 한 수정 이 성공 하지 못 한 것 이 아 닙 니 다.

character_set_server = utf8
character-set-server = utf8
<2>
설정 파일 의 수정 은 컴 파일 설치 이기 때문에 my sql 의 설정 파일 이 반드시/etc/my.cnf 가 아니 기 때문에 수정 후에 도 성공 하지 못 합 니 다.
<3>
프로필 을 수정 하고 my sql 을 다시 시작 합 니 다.문자 집합 과 교정 규칙 이 다음 과 같은 지 확인 하 십시오.
다음은 성공 입 니 다.Navicat 등 제3자 도 구 를 사용 하여 연결 하면 중국어 에 오류 가 있 습 니 다.도구 의 인 코딩 을 수정 해 보 세 요.
在这里插入图片描述
在这里插入图片描述
my sql 데이터베이스 에 있 는 문자 집합 난 코드 문제 의 원인 과 해결 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 my sql 데이터베이스 문자 집합 난 코드 질문 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 지원 바 랍 니 다!

좋은 웹페이지 즐겨찾기