2016-10-16 12 views
0

私のタルベの1つに、合計1011文字のマルチカラムインデックスがあります。 ストレージエンジンはInnoDBです。mysql 5.7 - 指定されたキーが長すぎます。最大キーの長さは3072バイトです

mysql 5.6.26でも同じテーブルが正常に動作していました。しかし今、私はmysql 5.7.16にアップグレードしたときにエラーが発生する指定されたキーが長すぎます。最大キーの長さは3072バイトです。

インデックスの合計サイズに制限があることを知っています。しかし、問題は5.6でなぜ働いていたのか、そして5.7で作業をやめたことです。列のサイズを減らさずにできることはありますか?

+0

http://dba.stackexchange.com/questions/49913/specified-key-was-too-long-max-key-length-is-1000-bytes-in-mysql-5-6 –

+0

大丈夫ですが、なぜ同じことが5.6で働いていたのですか?私たちは何も間違いなく2年間で5.6を使っています –

答えて

0

私たちの問題は、デフォルトの文字セットでした。古い5.6バージョンでは、私のデフォルトの文字セットはlatin1でしたが、5.7.16をインストールしたときに文字セットを変更せず、utf8がデフォルトのutf8になりました。デフォルトの文字セットをlatin1に戻してテーブルを再作成すると問題が解決されました。

[mysqld] 
character-set-server=latin1 

[client] 
default-character-set=latin1 

[mysql] 
default-character-set=latin1 
+1

これがあなたの問題に対する決定的な解決策であれば、あなた自身の答えを正しいものとして受け入れるべきです。 –

関連する問題