EC-CUBE Lab
produced by Cajiya
EC-CUBEに関するカスタマイズ方法やトラブルへの対処方法を発信

MySQL 5.5へのインストール時に発生する「key was too long」の原因と解消方法

公開日: 2025年09月23日 | 更新日: 2025年10月31日
サイト全体 500エラー EC-CUBE 4系全般 本体インストール MySQL

要望や症状

MySQL 5.5環境にEC-CUBEを新規インストールする際、MySQL初期化ステップで以下のエラーが発生し、インストールが完了しません。

エラーの詳細

Schema-Tool failed with Error 'An exception occurred while executing a query: SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes'

理由や原因

EC-CUBE 4系はMySQL 5.7以上がシステム要件となっており、MySQL 5.5は非対応バージョンです。このエラーが発生する根本的な原因は、MySQL 5.5のインデックスキー長制限とEC-CUBE 4系で使用される文字エンコーディングの不整合にあります。

具体的には、EC-CUBE 4系ではマルチバイト文字(絵文字など)を正しく扱うために utf8mb4 文字セットを使用しています。この文字セットでは1文字あたり最大4バイトが必要となるため、VARCHAR(255)フィールドにインデックスを作成する際は最大1020バイト(255×4)の容量が必要となります。しかし、MySQL 5.5のデフォルト設定ではInnoDBのインデックスキー長は767バイトまでに制限されており、この容量不足によりテーブル作成時にエラーが発生します。

また、MySQL 5.5は既にサポートが終了しており、セキュリティ面でもリスクを抱えているため、EC-CUBEのシステム運用としては適さない状況にあります。

解決策

推奨解決方法

MySQL 5.7以上にアップグレードしてください。MySQL 5.7以降ではinnodb_large_prefixがデフォルトで有効になり、インデックスキー長制限が3072バイトに拡張されるため根本的に解決されます。

MySQL 5.5での一時的対処(非推奨)

やむを得ずMySQL 5.5を使用する場合は、以下の設定変更で対処が可能ですが、パフォーマンスやデータ整合性に影響があるため推奨いたしません。

my.cnfまたはmy.iniの設定変更

[mysqld]
innodb_large_prefix = 1
innodb_file_format = Barracuda
innodb_file_per_table = 1

設定反映手順

  1. MySQLサービスを停止してください
  2. 設定ファイルを編集してください
  3. MySQLサービスを再起動してください
  4. EC-CUBEインストールを再実行してください

注意事項

  • MySQL 5.5は既にサポート終了しており、セキュリティリスクがあります
  • 一時的対処は将来的な問題の原因となる可能性があります
  • 本番環境では必ずMySQL 5.7以上をご使用ください

免責事項

本記事に掲載しているコードや手順は、執筆時点での情報および特定の環境下での動作確認に基づいています。 EC-CUBEのバージョン、サーバー環境、導入済みプラグインとの競合などにより、予期せぬ不具合が発生する可能性があります。

本記事の内容を実行した結果、生じた損害(データの消失、サイトの停止、機会損失など)について、当サイトおよび管理者は一切の責任を負いかねます。 実装にあたっては、必ずバックアップを取得し、検証環境(テスト環境)での動作確認を行った上で、ご自身の責任において実施してください。

この記事は参考になりましたか?

著者プロフィール: 株式会社カジヤ

当社はWeb業界の専門家として、培った経験や技術、自社事業を通して得た知見を土台に、 お客様の事業の成長を後押しすることを提供価値として活動する、Web事業の成長支援会社です。 EC-CUBE公式のパートナー制度「EC-CUBE インテグレートパートナー」に登録してしており、上位11%にあたる「ゴールドランク」に認定された実績があり、新しい通販サイトの構築から、カスタマイズ、リニューアルまで幅広く対応します。

サイト全体 の関連記事

サイト全体 500エラー EC-CUBE 4系全般
EC-CUBEでメモリ不足エラーが発生した場合の対処方法

EC-CUBEの運用中に以下のようなメモリ不足エラーが発生することがあります。 ### エラー...

👍 1 / 👎 0 2025年10月12日
サイト全体 文字化け キャッシュ操作
日本語ではなく翻訳キー(例:admin.home)が表示されるバグの解消方法

EC-CUBEの管理画面や商品一覧ページなどで、本来であれば日本語で表示されるべき箇所に「admin...

👍 0 / 👎 0 2025年09月24日

500エラー の関連記事

サイト全体 500エラー EC-CUBE 4系全般
EC-CUBEでメモリ不足エラーが発生した場合の対処方法

EC-CUBEの運用中に以下のようなメモリ不足エラーが発生することがあります。 ### エラー...

👍 1 / 👎 0 2025年10月12日

EC-CUBE 4系全般 の関連記事

商品 データ不整合 EC-CUBE 4系全般
EC-CUBEで取り扱い終了商品の削除ができない理由と対応方法

EC-CUBEでは、取り扱いを終了した商品を削除したい場合に、削除ができない状態になることがあります...

👍 1 / 👎 0 2025年10月12日
インストール・セットアップ EC-CUBE 4系全般 設定変更
EC-CUBEサイトのドメイン変更時の設定変更方法

EC-CUBEで構築したサイトを新しいドメインで公開する際に、どのような設定変更が必要かわからない場...

👍 0 / 👎 0 2025年10月12日
メール通知 通知/コミュニケーション EC-CUBE 4系全般
メール件名のショップ名を英語表記に変更する方法

EC-CUBE 4系で、メール件名の先頭に自動挿入される店舗名を英語表記に変更したい場合があります。...

👍 0 / 👎 0 2025年10月12日
フロント共通 機能不動作 EC-CUBE 4系全般
CloudFrontを利用時にリンクのドメインがEC2のパブリックDNSになってしまう問題の解決方法

EC-CUBE 4.2をAWS ECS on EC2上で構築し、CloudFrontをCDNとして利...

👍 1 / 👎 0 2025年10月12日
サイト全体 500エラー EC-CUBE 4系全般
EC-CUBEでメモリ不足エラーが発生した場合の対処方法

EC-CUBEの運用中に以下のようなメモリ不足エラーが発生することがあります。 ### エラー...

👍 1 / 👎 0 2025年10月12日