ホームページ  >  記事  >  データベース  >  MySQL への稀な文字の挿入の失敗に対処する方法 (写真)

MySQL への稀な文字の挿入の失敗に対処する方法 (写真)

黄舟
黄舟オリジナル
2017-05-14 09:57:342549ブラウズ

最近、ビジネス側から一部のユーザー情報の挿入に失敗したと報告され、エラー メッセージは「文字列の値が正しくありません: "xF0xA5....」に似ていました。このプロンプトから判断すると、文字セットが原因であるはずです。特定の珍しい文字をサポートしていません。困っている友人はそれを参照してください

最近、ビジネス側から、個別のユーザー情報の挿入に失敗し、「不正な文字列値:」xF0xA5... のようなエラー メッセージが報告されました。 " このプロンプトを見ると、文字セットが特定の珍しい文字をサポートしていないことが原因であるはずです。

以下は仮想マシンで再現されたシーンです:

step1. 元のテーブル構造の文字セット環境をシミュレートします:

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='会员卡';

step2. 珍しい文字を挿入します (sqlyog シミュレーションを使用します):

1. 最初にオンライン環境をシミュレートします。次の文字セットを設定します:

MySQL への稀な文字の挿入の失敗に対処する方法 (写真)

2. 珍しい文字を挿入します (珍しい文字については、www.qqxiuzi.cn/zh/hanzi-unicode-bianma.php?zfj=kzb&ks=24E20&js=を参照してください) 257E3)

MySQL への稀な文字の挿入の失敗に対処する方法 (写真)

キングを挿入してみます (word で alt を押しながら 152964 と入力します)。挿入に失敗したことがわかります。

step3. real_name の文字セットを変更します:

use test;

alter table t1 change real_name real_name varchar(255) CHARACTER SET utf8mb4 DEFAULT '' COMMENT '姓名' ;

大きなオンライン テーブルの場合、コマンドは次のとおりです:

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

step4。もう一度挿入します:

1. まず文字セットを設定します:

MySQL への稀な文字の挿入の失敗に対処する方法 (写真)

2. もう一度挿入すると、挿入が成功したことがわかります。

MySQL への稀な文字の挿入の失敗に対処する方法 (写真)

コマンドラインのクエリは文字化けしなくなりました:

MySQL への稀な文字の挿入の失敗に対処する方法 (写真)

これで参照できます。

以上がMySQL への稀な文字の挿入の失敗に対処する方法 (写真)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。