1

文字セットをlatin1からutf8に変更した後、バックアップをインポートしようとしましたが、インポート中に2137行でこのエラーエラー1071(42000)が発生しました。指定されたキーが長すぎます。キーの最大長は1000バイトです。my.cnfを変更し、すべての文字セットと接続をutf8に設定してみてください。しかし、運が良ければ、latin1に戻りたくないので、これで問題が解決することはわかっていますが、utf8 my gaolに手がかりはありますか?私はラテン語1バイト=1文字とutf83バイト=1を知っています。

4

3 に答える 3

3

UTF-8は文字ごとに常に3バイトであるとは限りませんが、MySQLはインデックス用に文字ごとに3バイトを予約しています。

アプリケーションで許可されている場合(つまり、UNIQUE KEY制約で使用されていない場合)、適切な長さ(つまり、<1000/3)のプレフィックスキーを使用するようにテーブルを再定義/変更します。

CREATE TABLE my_table .... KEY my_field_20(my_field(20));

于 2010-11-09T22:51:13.950 に答える
0

MyISAMからInnoDBに切り替えることができますか?問題は解決しているようです。

于 2010-11-09T07:14:39.367 に答える
-1

mysqldumpコマンドで--forceオプションを使用すると、エラーが無視され、バックアップが続行されます。

于 2010-11-09T07:07:26.993 に答える