MySQL 5.6にバージョンアップしたらサイトが表示されなくなった

 

ついさっきですが、私が使用しているレンタルサーバーのHetemlのデータベースサーバーのメンテナンスがありました。
サーバーの老朽化のため、交換を行ったようです。
すると、そのデータベースサーバーを使用していた私のEC-CUBEのシステムが動かなくなってしまいました。

これは致命的なのですぐに復旧を行う必要があります。
まず、バージョンアップされたデータベースに直接アクセスしてみると、正常に動作しており、かつ自分のデータベース、テーブルなどもそのまま残っていました。
ということで、サーバ側の動作に問題があったわけではないようです。

データベースはMySQLで、前のバージョンはいくつだったか忘れてしまいましたが、新しいサーバーではMySQL 5.6にバージョンアップされたようです。
よって、問題はこのバージョンアップに伴う何かしらの変更だという目星がつきました。

 

MySQL 5.6からはパスワードのハッシュ方式が異なる

データベースが正常に動作している以上、問題はEC-CUBEからMySQLに接続することができない、という点にあるということが分かります。
ということは、サーバーにアクセスするためのIDとパスワード辺りが怪しい。

ちょっと調べてみると、MySQL 5.6ではパスワードのハッシュ方式が異なることが分かりました。
⇒MySQL 5.6 リファレンス

かつてのハッシュ方式が16バイト文字列であったのに対し、新しいバージョンでは41バイトの長い文字列のハッシュが生成されます。
ですから、DBに保存されているパスワードのハッシュはそのまま16バイトなのですが、EC-CUBEがログインするためにハッシュを生成すると41バイトのハッシュが生成されてしまい、パスワード認証ができないという事態だったと思われます。

ということで、MySQLにて再度「同じパスワード」を登録し、41バイトのハッシュで上書きされるようにしてみます。

実行するSQLはこちら。

 

この*********の部分はパスワード(以前と同じパスワード)です。
これで、再度EC-CUBEのサイトを立ち上げてみると、無事に表示されました。

 

振り返ってみれば、前にPHPのバージョンが上がった際にも同じことが別のサイトで起こっていました。
その時もパスワードをSQLで再度登録しなおして解決しました。

 

Hetemlさんのサーバーメンテナンスに落ち度はありませんでしたが、MySQLのバージョンが上がることと、それに伴って生じ得る問題についてもちゃんと告知してくれれば、慌てずに済んだのになという思いがあります。
Hetemlさん、次回はそこらへんもよろしくお願いします。

 

 

 

脱サラしペルーに移住。
仕事と趣味にのんびりと生きる。

投稿者: Jorge

脱サラしペルーに移住。 仕事と趣味にのんびりと生きる。

コメントを残す

メールアドレスが公開されることはありません。