「ドライバが存在しない」エラーの正体 — 疑うべきはPHPのPDO拡張
スキーマ更新コマンドで「could not find driver」と出たら、原因はほぼPHPのPDO拡張の欠落です。PDOはPHPがデータベースに接続するための標準機能で、実際の接続はMySQLならpdo_mysql、PostgreSQLならpdo_pgsqlという拡張が担います。まず、そのコマンドを叩いたPHPで php -m を実行し、該当拡張が一覧にあるか確認してください。無ければ、それが答えです。以下はEC-CUBE 4系を前提とします。
先に容疑から外してよいものを挙げます。DATABASE_URLのパスワードやホスト名の誤りでは、この文言は出ません。認証や到達性の問題なら「Access denied」「Connection refused」といった別のメッセージになります。接続情報をいくら見直しても、この場合は直りません。
原因を切り分けて直す手順 — DB接続情報ではなく実行環境を見る
直すべきは設定ファイルではなく、コマンドを実行しているPHPそのものです。拡張の有無を確認し、足りなければ入れて有効化し、同じPHPで再実行する。この順で進めます。
叩いたPHPと拡張を照合する
最も多い落とし穴は、CLIで動くPHPとWeb(php-fpm)で動くPHPが別物というケースです。複数バージョンが同居するレンタルサーバーや、パスの通り方次第で、管理画面は開けるのにコマンドだけ失敗します。まず拡張の有無を見ます。
php -m | grep -i pdo
ここに pdo_mysql(または pdo_pgsql)が出れば拡張はあり、出なければそれが原因です。which php でパスも確認し、Web側と違うPHPを叩いていないか見てください。拡張を入れた後は、同じ php -m で再び並ぶことを確かめてから再実行します。ここまでで何も欠けていなければ、次のスキーム不一致を疑います。
DATABASE_URLのスキームと必要な拡張が一致しているか
スキーマ更新が読むDB接続先は、設定上こう定義されています。
eccube_database_url: '%env(DATABASE_URL)%'
実体は環境変数 DATABASE_URL で、先頭のスキームが使うドライバを決めます。mysql:// なら pdo_mysql、postgres:// なら pdo_pgsql が必要です。拡張は入っているのにスキームだけ食い違っていると、やはりドライバが見つかりません。ここは見落としやすく、拡張導入後も同じエラーが続くなら真っ先に疑うポイントです。.env の先頭部分と、入れた拡張の種類が対応しているか見比べてください。両方そろえて再実行し、スキーマ差分のSQLが表示されれば解消です。
EC-CUBEに関するお問い合わせ
[重要]現在公式にセキュリティサポートが切れていないPHPは8.1以上、MySQLは8.0以上で、対応しているEC-CUBEバージョンは4.2以上です。古いEC-CUBEを使っている方は適切なタイミングでバージョンアップをご検討ください。

本記事のコード・挙動に関する記述は、EC-CUBE 4.3.1 の実際のソースコードと照合して確認しています。
EC-CUBEゴールドパートナー