Wordpress関係の更新で苦労した
ローカル環境にWindows Server 2008にPHPとApachとMysqlにWodpressを入れて運用していたけど各種プログラムに更新の必要性がでてきたので頑張った苦労話。
phpのバージョンアップ
フォルダごとファイルを差し替えて、INIを修正するだけ
- 現状:5.6.18
- 最新:5.6.19
http://windows.php.net/download/
VC11 x64 Thread Safe (2016-Mar-03 05:51:47)
古いフォルダをphp_5.6.18
展開してC:\php
php.ini
修正 extension_dir = "c:\php\ext" date.timezone ="Asia/Tokyo" 有効化 extension=php_curl.dll extension=php_mbstring.dll extension=php_mysql.dll extension=php_mysqli.dll extension=php_openssl.dll
MySQL
バックアップしてからの、削除&インストール、復元ってな流れ
- 現状:5.1.63
- 最新:5.7.11
バックアップ
個別とか考えるの面倒だから、全部バックアップしちゃう
C:\Users\Administrator>mysqldump -u root -p --all-databases > c:\dump20160312.sql
古すぎて一発でいかない
5.1>5.5>最新と段階を踏む
5.1をアンインストール
net stop mysql c:\Program Files\MySQL\MySQL Server 5.1\bin>mysqld --remove Service successfully removed.
5/5をインストールして確認
mysql -u root -p select version() 5.5.48 net stop mysql c:\Program Files\MySQL\MySQL Server 5.1\bin>mysqld --remove Service successfully removed.
。。。うまく動かないので5.1、5.5をコントロールパネルからアンインストール
5.7インストール、環境変数を修正
データをインポート
c:\>mysql -u root -p --default-character-set=utf8 < dump20160312.sql
wordpressが開かない
IEだと500エラーになる。
Chromeだと「データベース接続確立エラー」
データベースに接続できないので、データベース周りの設定を眺める。
あとコマンドでMySQLにも接続してみると、IDとパスワードが違うので修正したら繋がった。
こんな修正方法で良かったのかな・・・?
C:\Apache24\htdocs\wordpress\wp-config.php
/** MySQL データベースのユーザー名 */ //define('DB_USER', 'wp_user'); define('DB_USER', 'root'); /** MySQL データベースのパスワード */ //define('DB_PASSWORD', 'wp_pass'); define('DB_PASSWORD', 'root_password'); /** MySQL のホスト名 */ define('DB_HOST', 'localhost'); /** データベースのテーブルを作成する際のデータベースのキャラクターセット */ define('DB_CHARSET', 'utf8'); /** データベースの照合順序 (ほとんどの場合変更する必要はありません) */ define('DB_COLLATE', '');
ここにきて、大ミスが発覚
http://blog.livedoor.jp/ese_admin/archives/52027714.html
mysqldump -u root -x --all-databases > hogehoge.dump mysqldump -u root -x --allow-keywords mysql > hogehogeuser.dump 上の1行でデータベース全体のバックアップをします。 下の1行でユーザー情報をバックアップします。 リストアは以下のとおり。 mysql -u root -p < hogehoge.dump mysql -u root -p mysql < hogehogeuser.dump
下はやっていないよ。。。
ぐちゃぐちゃやって、データベースにアクセスできなくなったのでMySQLインストーラーからアンインストールして再起動、インストーラーから入れている途中でユーザー(wp_user)を追加してみた。
ログインも出来たので、まっさらなデータベースをリストアしてあげると動いた。
うごいたけど、一度だけ。もう動かない。
サービスのMySQL57も開始されない。モニターから再起動も出来ない。
おそらく同じ原因MYSQL、再インストールに注意!「COULD NOT START THE SERVICE MYSQL」
MySQLの再インストール
- MySQL Installerから全てアンインストール&OS再起動
- C:\Program Files\MySQLを_MySQLとリネーム
- 「システム環境変数」の[path]にMySQLをインストールしたパスを削除
- C:\ProgramData\MySQLを削除
- C:\Windows\System32\Tasks\MySQLを削除
- OS再起動
- MySQL Installerから入れる
- Connector/ODCB、C++、JがErrorになるがNextでなんとか完了
- MySQL Installerの「MySQL Server」の「Reconfigure」
データをインポート
c:\>mysql -u root -p --default-character-set=utf8 < dump20160312.sql
C:\Apache24\htdocs\wordpress\wp-config.phpの「wp_user」でログインできているようです。
結論:WindowsでMySQLのアップデートを行うなら、おなじような環境を構築してからテストしておくのが吉だとおもう。
アップデートで失敗したら、MySQLの痕跡のすべて消してから最新版を入れる。あとから問題が発生するほうが面倒だよ。