方法: 1. 「my.cnf」ファイルを設定し、mysqld 配下に「character_set_server=modified content」と「collation_server=modified content」を追加します; 2. 「systemctl restart mysqld」を使用して再起動できます。
このチュートリアルの動作環境: Windows10 システム、mysql8.0.22 バージョン、Dell G3 コンピューター。
[問題エラー]
データベースにデータを挿入するとき、varchar 型フィールドに中国語のデータを挿入するとエラーが発生します。
元のエラー テキスト:
エラー 1366 (HY000): 列 'アドレス' の文字列値が正しくありません: '\xE8\xA5\xBF\xE5\xAE\x89'
[原因]分析 ]
show full columns from user_bean;
ステートメントを通じてフィールドの照合属性を確認し、フィールドの照合属性の値が latin1_swedish_ci であることを確認します。 、フィールドがデフォルトで英語であることを示します。中国語が設定されていないため、中国語を入力すると、mysql は「文字列の値が正しくありません」というエラーを報告します。
[解決策]
1. mysql 設定ファイル /etc/my.cnf, vi /etc/my を編集します。 cnf
[mysqld] の下に 2 行を追加して
character_set_server=utf8 collation_server=utf8_general_ci
2 を追加します。Mysql サービスを再起動しますsystemctl restart mysqld
データベースに中国語のデータが含まれています。成功しました!
注: 上記の手順により、今後テーブルを作成する際のフィールドの照合属性の問題は解決できますが、以前に作成されたテーブル フィールドの照合属性値は変更されません。
以前に作成したテーブルを変更したい場合はどうすればよいですか?
方法 1: 元のテーブルを変更するには、同様のステートメントを使用できます。 alter table user_bean change address address varchar(255) Character set utf8 Collate utf8_general_ci not null;
方法 2: 元のテーブルを削除して再作成します。
[コマンドの概要]
show full columns from 表名 vi /etc/my.cnf character_set_server=utf8 collation_server=utf8_general_ci systemctl restart mysqld alter table 表名 change 要修改的字段 字段名 数据类型 character set utf8 collate utf8_general_ci 约束条件;
推奨学習: mysql ビデオ チュートリアル
以上がmysqlで照合順序を変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。