MySQLのバージョンアップに失敗した時の話

Pocket
LINEで送る
GREE にシェア
LinkedIn にシェア

WordPressを使っているとMySQLとうまく付き合わないといけません。
WordpressもMySQLも常にバージョンアップしているので、常に新しい問題が発生するのですが、バージョン依存問題とモジュールアップデートにおける問題があったので、対応方法の備忘録としてブログに書いておきます。

2つの問題点

それは、ロリポップでWordpressの運用をする仕事を請け負った時の話でした。
Wordpressのバックアップ環境を作ろうと思って、データベースのdump(コピー)を取り、それを別サーバーに移動した時に、
以下のようなエラーが発生していました。

すぐにググって見たところ、これは「MySQLのバージョン5.5以下では文字コードが違っているので使えません」というエラーのようです。
 

https://umebius.com/wordpress/unknown-collation-utf8mb4_unicode_520_ci/
 

と言う事で、MySQLを5.6以上にアップデートしなければいけません。
 

ここで2つ目の問題で、バックアップサーバーの環境はDebian8を使っていて、ベアボーンの少し特殊な32bitのPCでした。
世の中はすでに64bitの話ばかりになっていて、MySQLもORACLEがサービス構成を変更していたため、なかなか対象のバージョンのモジュールに他取り付けることができない状態です。
 

仕方なく、Qiitaなどの情報をもとに、書いてある通りにコマンドを打っていったら、どうやら間違ったモジュールがインストールされてしまったようで、SQLが正常に起動しない状態に陥ってしまいました。
おまけに、アンインストールしても、再インストールできないぐらい変な依存関係が残ってしまう状態…orz
 

Dockerであれば、イメージ毎作り直せばいいんですが、データベースのアップデートって本当に手間がかかります。
 

とりあえず、元の状態に戻すことを前提の作業を行うようにしました。

MySQLのアップデートに失敗した時の操作方法

まずは、dpkgでインストールした不要なモジュールの削除は以下のコマンドで消し去ります。
 

 

-rではなく、–purgeで行う方がいいようです。
ちなみに、モジュール名は、適宜変更してコマンド実行してください。
 

次に、下記コマンドで、ビルドからやり直してもらいましょう。
 

 

最後に、aptitudeでインストールすることで、無事に元の状態に戻すことができました。
 

 

しかし問題解決しておらず、この状態ではまだMySQL5.5の状態なので、最新のWordpressのデータを取り込むことができません。
とりあえず、今の所は、sqlファイルでバックアップしておくことにして、バージョンアップはDockerで検証した後に作業することにしましょう。
 

今回の作業をした際に、元のSQLのデータは消えてしまうので、こうした作業の前にきちんとバックアップとっておくことをお勧めします。
 

教訓「むやみにバックアップをせずに手堅い運用をするべし!」

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です