MySQL 생소 한 글자 삽입 실패 처리 방법(Incorrect string value)

최근 에 업무 측 에서 개별 사용자 정보 삽입 에 실 패 했 습 니 다.오류 알림 은"Incorrect string value:"\\xf0\xA5.................................................................
다음은 가상 컴퓨터 에서 재현 되 는 장면 입 니 다.
step 1,아 날로 그 원시 표 구조 문자 집합 환경:

use test;
CREATE TABLE `t1` (
 `id` int(10) NOT NULL AUTO_INCREMENT,
 `real_name` varchar(255) CHARACTER SET utf8 DEFAULT '' COMMENT '  ',
 `nick` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '  ',
 PRIMARY KEY (`id`)
) ENGINE=InnoDBAUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='   ';
step 2,생소 한 글자 삽입(sqlyog 시 뮬 레이 션 사용):
1.먼저 온라인 환경 을 모 의 하고 문자 집합 을 설정 합 니 다.
wKiom1kUGECCXdKDAAAV9L1hpEY173.png
2.생소 한 글자 삽입(생소 한 글 자 는 참고 할 수 있다http://www.qqxiuzi.cn/zh/hanzi-unicode-bianma.php?zfj=kzb&ks=24E20&js=257E3)
wKioL1kUGEHCtaAvAABxJXp_7Ow741.png
우 리 는 왕 을 삽입 하려 고 시도 합 니 다.삽입 에 실 패 했 음 을 볼 수 있 습 니 다.
step 3、real 수정name 문자 집합:

use test;

alter table t1 change real_name real_name varchar(255) CHARACTER SET utf8mb4 DEFAULT '' COMMENT '  ' ;
온라인 테이블 이 라면 pt-osc 로 처리 할 수 있 습 니 다.명령 은 다음 과 같 습 니 다.

pt-online-schema-change -uroot -h localhost --alter=" change real_name real_name varchar(255) CHARACTER SET utf8mb4 DEFAULT '' COMMENT '  ' " D=test, t=t1 --no-check-replication-filters --alter-foreign-keys-method=auto --recursion-method=none --quiet --charset=utf8mb4 --dry-run

pt-online-schema-change -uroot -h localhost --alter=" change real_name real_name varchar(255) CHARACTER SET utf8mb4 DEFAULT '' COMMENT '  ' " D=test, t=t1 --no-check-replication-filters --alter-foreign-keys-method=auto --recursion-method=none --quiet --charset=utf8mb4 --execute
step 4、다시 실험 삽입:
1.문자 집합 설정:
wKiom1kUGECCXdKDAAAV9L1hpEY173.png
2.다시 삽입 하면 삽입 이 성공 한 것 을 볼 수 있 습 니 다.
wKioL1kUGILTLvpxAAAdWKxKR5A899.png
명령 행 에서 조회 해도 어 지 럽 지 않 습 니 다.
wKiom1kUGIPyeykFAAAiRzDqNxs956.png
여기까지 완성 되 었 으 니 참고 하 셔 도 됩 니 다.

좋은 웹페이지 즐겨찾기