wordpressで使用しているmysqlをバージョンアップさせたいです。
現在は
- mysql55-server-5.5.46-1.10.amzn1.x86_64
をmysql5.6にバージョンアップさせたい
- mysql56-server.x86_64 5.6.30-1.15.amzn1
参考までに、
- httpd24
- php56
をインストール済みのAmazon Linux環境です。
mysql56-serverのクリーンバージョンアップ方法
クリーンじゃなくてもバージョンアップ出来ればそれで良いのですが
今回はデータベースバックアップ・リストアもかねてクリーンインストールをしてみました。
※ 以下の記事はすべてLinux上のrootユーザーで実行しています。
wordpressのデータベースをバックアップするコマンド
以下のコマンドを実施し、データベースダンプファイルを作成します
mysqldump –u aws –p wordpress > wordpress.sql
- 「aws」はwordpressで使用しているデーターベースユーザー
- 「wordpress」はwordpressで使用しているmysqlデータベース
- 「wordpress.sql」はダンプファイル
を意味しています。
mysql55-serverをアンインストール
以下のコマンドを実施します。(環境によってはもっとアンインストールしないと依存関係が残ってしまいうまくmysql56をインストール出来ないかもしれません)
yum remove mysql55-libs mysql-server mysql-config mysql55 mysql55-server
インストール済みパッケージについてmysqlを含むものはすべて削除しました。
mysqlデータをすべて削除
rm -rf /var/lib/mysql
rm -f /var/lib/mysql/mysql.sock
rm -f /var/log/mysqld.log
rm -f /var/run/mysqld/mysqld.pid
rm -f /etc/my.cnf
今回はクリーンインストールをしていたので、すべてを削除しました。
もしかしたらデータベースファイルを残しておいたら、データベース情報が引き継がれたかもしれません。。。(未確認)
mysql56-serverをインストール
以下のコマンドで、mysq56-serverをインストールします。
yum install mysql56-server
mysql56の起動。[ERROR] InnoDB: Cannot allocate memory for the buffer pool
OS搭載メモリが小さいと[ERROR] InnoDB: Cannot allocate memory for the buffer poolエラーが発生します。
今回の環境はAWS上のt2.microで搭載メモリが1GBでした。
例えば、t2.mediumの搭載メモリ4GBに変更することでmysqlサーバーが起動しました。
/etc/init.d/mysql start
mysqlのデータベースとユーザー作成
mysql -u root –p
create database wordpress;
grant all privileges on wordpress.* to aws@localhost identified by 'password';
必要ならばrootユーザーのパスワードも設定しておいた方が良いですね(ここでは省略)
mysqlのデータベースインポート
以下のコマンドを実行します。
mysql –u aws –p wordpress < wordpress.sql
- 「aws」はwordpressで使用しているデータベースユーザー
- 「wordpress」はwordpressで使用しているデータベース名
- 「wordpress.sql」はバージョンアップ前に取得したダンプファイル
※ mysql56にバージョンアップしても「ERROR 2006 (HY000) at line 478: MySQL server has gone away」が出ましたので、/etc/my.cnfに以下の設定を追加して、mysqlサーバーを再起動してから再度インポートしました。
max_allowed_packet=8M
もしも「お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。」と表示されたら
もしも、wordpressサイトにアクセスしたら
お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。
を表示されwordpressサイトが見れなかった場合、php-mysqlパッケージが足りません。
以下のコマンドを実行し、httpdを再起動します。(php56を使用の場合)
yum install php56-mysqlnd
/etc/init.d/httpd restart