サーバのミドルウェアとかって入れ替えるのは結構面倒くさいので、とりあえずパッケージマネージャでセキュリティ修正だけ適用して済ませていたんだけど、最近、WPが重いんでMySQLを入れ替えることにした。
従来はMySQL5.5が入っていたけど、今回はMariaDB10.1にアップした。 CentOS5.5の古い環境・・・
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
mysqldump --all-databases >dump.sql /etc/init.d/mysqld stop cp /etc/my.cnf /etc/my.cnf.bk cat> /etc/yum.repos.d/maria.repo [mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.1/centos5-amd64/ gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1 enabled=1 ^d yum remove mysql-server rpm -e --nodeps mysql-libs yum install --enablerepo=mariadb MariaDB-server MariaDB-devel MariaDB-client cp /etc/my.cnf.bk /etc/my.cnf.d/server.cnf /etc/init.d/mysql start mysql_upgrade chkconfig mysql on |
やってみればこれで全部終わった。 既存DBのダンプ実施、mysqld停止、設定バックアップ、yumリポジトリの追加、既存のmysqldをyumでアンインストール、そのままMariaDBを入れようとするとmysql-libsがコンフリクトしたのでmysql-libsをrpmで削除(yumだと依存でzabbixとか一式削除されそうだったためrpmで依存無視除去)、yumからMariaDBをインストール、コンフィグを戻し、mysqlをスタート(mysqldからmysqlに変わっている)、mysql_upgradeしてデフォルト起動をOnに設定。 一部のアカウントがOld-passwordになっていてsecure-authで蹴られて繋がらなくなってしまった。
この場合、管理ユーザでパスワードを再登録するところだけど、なんとrootがold passwordになっていて入れなかったので、/etc/my.cnf.d/server.cnfのmysqldセクションにskip-secure-authを記述して一時的に起動し、old_password=0にてPASSWORDを再登録してskip-secure-authを削除して再起動した。
更新にあわせてデータフォーマットの変更、パラメータ調整などを実施したところ激重だったwpのstatpress処理時間が劇的に改善した(デフォルトでstatpressはmyisamなので、mysqldumpして定義部分をENGINE=INNODB ROW_FORMAT=DYNAMICに変更してインポート)
(535)