はじめに
VPSにCentOS7を選択肢、Pleskで管理を行っています。
デフォルトのDBがMariaDB5.5でしたので、MariaDB10.3にアップグレードしました。
その手順になります。
Pleskがなければ、yumでサクッとアップグレードしちゃいますが、Pleskでシステム管理をする関係上、Pleskに寄り添ったアップグレードをする必要があります。
実際のアップグレードの手順は、PleskのサイトでHow to upgrade MySQL 5.5 to 5.6/5.7 or MariaDB 5.5 to 10.0/10.1/10.2 on Linux?に掲載がされていますので、この手順どおりになります。
また、補足として、MariaDB10.2からSQLモードのデフォルト値が変更になりましたので、その補正設定も最後に追記しています。古いWebアプリを利用する場合はご確認ください。
初心者の方にも理解できるようにスクショ多めにしてみました。
CentOS6のMySQL5.1から5.6にアップグレードする場合は、以下を御覧ください。
https://qiita.com/idani/items/2775d48955cd5f78aaf4
注意
2019/11/27 現在、 MariaDB10.3が利用可能なのは、Plesk Obsidianのみです。
Onyxとそれ以前はサポートしていませんのでご注意ください。
Pleskにログインをして、右側のサイドバーの「システム概要」にPleskのバージョンは記載があります。
アップグレード手順
OSとMariaDBのバージョン確認
この記事でCentOS7と銘打っているのですが、この記事を見た方のOSがCentOS7ではないかもしれません。
きちんと確認をしましょう。
# plesk version | grep "OS version"
OS Version: CentOS 7.7.1908 x86_64
# rpm -qa | grep -i maria
mariadb-5.5.64-1.el7.x86_64
mariadb-server-5.5.64-1.el7.x86_64
mariadb-libs-5.5.64-1.el7.x86_64
mariadb-devel-5.5.64-1.el7.x86_64
plesk-libmariadbclient-1.0-1.0.0-1centos.7.190329.1026.x86_64
sw-mariadb-client-1.0.0-centos7.16102516.x86_64
plesk-libmariadbclient-3.0-3.0.9-1centos.7.190417.1743.x86_64
既存のDBのバックアップ
# MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysqldump -u admin --all-databases --routines --triggers > /tmp/all-databases.sql
MariaDBの停止
# service mariadb stop
mariadb-benchのような追加パッケージの削除
デフォルト状態ではインストールされていませんでした。
# rpm -e --nodeps mariadb-bench
error: package mariadb-bench is not installed
DBデータの実態をバックアップします。
# cp -v -a /var/lib/mysql/ /var/lib/mysql_backup
mysql-severがインストールされていないか確認する
念には念を入れてということですね。
# rpm -q --whatprovides mysql-server
インストールされていない場合
no package provides mysql-server
インストールされている場合は、以下で削除する
# rpm -e --nodeps `rpm -q --whatprovides mysql-server`
MariaDBのサイトで、リポジトリ情報を取得する
Setting MariaDB 10.3 repositoriesで、MariaDB10.3のリポジトリ設定情報を取得する。
10.3以外も選択ができます。
リポジトリ情報を書き込みます。
vi /etc/yum.repos.d/MariaDB.repo
viで開くと新規ファイルなので、空の状態です。
先のサイトで取得した設定を書き込ます。以下は10.3の情報です。
# MariaDB 10.3 CentOS repository list - created 2019-11-27 14:30 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.3/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
MariaDBのアップデートを行います。
途中、選択肢がでた場合は、「y」キーで問題ないです。
最後に、「Complete!」と表示されたら、インストールは完了です。
# yum install MariaDB-client MariaDB-server
MariaDBを起動します。
# service mariadb start
MySQL5.5のデータベースをアップグレードします。
# MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysql_upgrade -uadmin
MariaDBを再起動します。
# service mariadb restart
Pleskの内部パッケージのバージョンを更新する。
# plesk sbin packagemng -sdf
起動スクリプトの修正
mysqlを止めます。
# systemctl stop mysql; killall mysqld
mysqlの起動スクリプトを削除します。
# rm /etc/init.d/mysql && systemctl daemon-reload
mariadbを登録します。
# systemctl start mariadb
OSの起動時にMariaDBも起動するように指定します。
# systemctl enable mariadb
Plesk上でバージョン確認
【補足】SQL_modeの変更
MariaDB 10.2以降は、デフォルトでsql_modeが変更されて、SQLを厳格にチェックするようになりました。
このためMySQLを利用する古いWebアプリが動かない場合がありますので、修正をします。
server.cnfの[mariadb]の欄に「sql_mode=''」を追記し、サーバを再起動します。
# vi /etc/my.cnf.d/server.cnf
[mariadb]
sql_mode='' <=追加
# service mariadb restart
その後、コマンドラインでも、PHPMYADMINでも、sql_modeを確認して空欄になっていればOKです。