【オレ流】Upgrading from MariaDB 10.1 to MariaDB 10.2
MariaDBのバージョンを10.1から10.2にアップグレードしました。バージョンナンバーで言えば「たったコンマ1」のアップグレードなので、WordPressのようにボタンひとつで簡単に行えるかと思いがちですが、実際はそうではありません。
公式サイトのUpgrading from MariaDB 10.1 to MariaDB 10.2やMariaDB 10.1 を 10.2 にアップデートする方法 | LuftGardenのやり方でアップグレードしようとすると、rpmパッケージの依存関係で色々と面倒なので、一部のみ参考とさせていただきました。
[root@server ~]# mysqldump -u root -p --all-databases > /root/mariadb_backup_all.sql Enter password: [root@server ~]# systemctl stop mariadb
まずはデータベース全体のバックアップを取得して、MariaDBのサービスを停止します。もし停止し忘れてもアンイストールの時点で勝手に止まりますので心配いりません。
[root@server ~]# yum remove -y MariaDB-server Loaded plugins: fastestmirror, langpacks Resolving Dependencies --> Running transaction check ---> Package MariaDB-server.x86_64 0:10.1.34-1.el7.centos will be erased --> Finished Dependency Resolution Dependencies Resolved ======================================================================================================================== Package Arch Version Repository Size ======================================================================================================================== Removing: MariaDB-server x86_64 10.1.34-1.el7.centos @mariadb 450 M Transaction Summary ======================================================================================================================== Remove 1 Package Installed size: 450 M Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction Erasing : MariaDB-server-10.1.34-1.el7.centos.x86_64 1/1 warning: /etc/my.cnf.d/server.cnf saved as /etc/my.cnf.d/server.cnf.rpmsave Verifying : MariaDB-server-10.1.34-1.el7.centos.x86_64 1/1 Removed: MariaDB-server.x86_64 0:10.1.34-1.el7.centos Complete! [root@server ~]#
MariaDB-serverのみをアンインストールします。MariaDB-serverのみ"yum update"コマンドでアップデートしようとすると、手動で削除しろと怒られます。
[root@server ~]# cat > /etc/yum.repos.d/MariaDB.repo <<'EOF' # MariaDB 10.2 CentOS repository list - created 2018-07-12 08:09 UTC # http://downloads.mariadb.org/mariadb/repositories/ [mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.2/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1 EOF [root@server ~]#
リポジトリをMariaDB 10.2のものに書き換えます。"sed -i -e 's|10.1|10.2|g' /etc/yum.repos.d/MariaDB.repo"コマンドを実行して、10.1のところを10.2に書き換えるだけでもOKです。
[root@server ~]# yum -y install MariaDB-server Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: ftp.riken.jp * epel: ftp.iij.ad.jp * extras: ftp.riken.jp * updates: ftp.riken.jp mariadb | 2.9 kB 00:00:00 mariadb/primary_db | 61 kB 00:00:01 Resolving Dependencies --> Running transaction check ---> Package MariaDB-server.x86_64 0:10.2.16-1.el7.centos will be installed --> Finished Dependency Resolution Dependencies Resolved ======================================================================================================================== Package Arch Version Repository Size ======================================================================================================================== Installing: MariaDB-server x86_64 10.2.16-1.el7.centos mariadb 110 M Transaction Summary ======================================================================================================================== Install 1 Package Total download size: 110 M Installed size: 466 M Downloading packages: MariaDB-10.2.16-centos73-x86_64-server.rpm | 110 MB 00:01:22 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : MariaDB-server-10.2.16-1.el7.centos.x86_64 1/1 Verifying : MariaDB-server-10.2.16-1.el7.centos.x86_64 1/1 Installed: MariaDB-server.x86_64 0:10.2.16-1.el7.centos Complete! [root@server ~]#
MariaDB-server-10.2をインストールします。
[root@server ~]# mkdir -p /etc/my.cnf.d/backup [root@server ~]# \mv /etc/my.cnf.d/{server.cnf,backup/server.cnf-orig} [root@server ~]# \mv /etc/my.cnf.d/server.cnf{.rpmsave,} [root@server ~]# sed -i -e '/-10\.1/s|\.1|\.2|g' /etc/my.cnf.d/server.cnf
MariaDB-serverの設定ファイルをリストアします。インストールで作成された/etc/my.cnf.d/server.cnfは上書きする前にバックアップをとっておきます。
[root@server ~]# yum -y update MariaDB-* Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: ftp.riken.jp * epel: ftp.iij.ad.jp * extras: ftp.riken.jp * updates: ftp.riken.jp Resolving Dependencies --> Running transaction check ---> Package MariaDB-client.x86_64 0:10.1.34-1.el7.centos will be updated ---> Package MariaDB-client.x86_64 0:10.2.16-1.el7.centos will be an update ---> Package MariaDB-common.x86_64 0:10.1.34-1.el7.centos will be updated ---> Package MariaDB-common.x86_64 0:10.2.16-1.el7.centos will be an update ---> Package MariaDB-compat.x86_64 0:10.1.34-1.el7.centos will be updated ---> Package MariaDB-compat.x86_64 0:10.2.16-1.el7.centos will be an update ---> Package MariaDB-devel.x86_64 0:10.1.34-1.el7.centos will be updated ---> Package MariaDB-devel.x86_64 0:10.2.16-1.el7.centos will be an update ---> Package MariaDB-shared.x86_64 0:10.1.34-1.el7.centos will be updated ---> Package MariaDB-shared.x86_64 0:10.2.16-1.el7.centos will be an update --> Finished Dependency Resolution Dependencies Resolved ======================================================================================================================== Package Arch Version Repository Size ======================================================================================================================== Updating: MariaDB-client x86_64 10.2.16-1.el7.centos mariadb 48 M MariaDB-common x86_64 10.2.16-1.el7.centos mariadb 157 k MariaDB-compat x86_64 10.2.16-1.el7.centos mariadb 2.8 M MariaDB-devel x86_64 10.2.16-1.el7.centos mariadb 6.6 M MariaDB-shared x86_64 10.2.16-1.el7.centos mariadb 393 k Transaction Summary ======================================================================================================================== Upgrade 5 Packages Total download size: 58 M Downloading packages: No Presto metadata available for mariadb (1/5): MariaDB-10.2.16-centos73-x86_64-common.rpm | 157 kB 00:00:01 (2/5): MariaDB-10.2.16-centos73-x86_64-compat.rpm | 2.8 MB 00:00:02 (3/5): MariaDB-10.2.16-centos73-x86_64-devel.rpm | 6.6 MB 00:00:07 (4/5): MariaDB-10.2.16-centos73-x86_64-shared.rpm | 393 kB 00:00:00 (5/5): MariaDB-10.2.16-centos73-x86_64-client.rpm | 48 MB 00:00:26 ------------------------------------------------------------------------------------------------------------------------ Total 2.2 MB/s | 58 MB 00:00:26 Running transaction check Running transaction test Transaction test succeeded Running transaction Updating : MariaDB-compat-10.2.16-1.el7.centos.x86_64 1/10 Updating : MariaDB-common-10.2.16-1.el7.centos.x86_64 2/10 Updating : MariaDB-devel-10.2.16-1.el7.centos.x86_64 3/10 Updating : MariaDB-shared-10.2.16-1.el7.centos.x86_64 4/10 Updating : MariaDB-client-10.2.16-1.el7.centos.x86_64 5/10 Cleanup : MariaDB-devel-10.1.34-1.el7.centos.x86_64 6/10 Cleanup : MariaDB-client-10.1.34-1.el7.centos.x86_64 7/10 Cleanup : MariaDB-compat-10.1.34-1.el7.centos.x86_64 8/10 Cleanup : MariaDB-shared-10.1.34-1.el7.centos.x86_64 9/10 Cleanup : MariaDB-common-10.1.34-1.el7.centos.x86_64 10/10 Verifying : MariaDB-devel-10.2.16-1.el7.centos.x86_64 1/10 Verifying : MariaDB-common-10.2.16-1.el7.centos.x86_64 2/10 Verifying : MariaDB-shared-10.2.16-1.el7.centos.x86_64 3/10 Verifying : MariaDB-compat-10.2.16-1.el7.centos.x86_64 4/10 Verifying : MariaDB-client-10.2.16-1.el7.centos.x86_64 5/10 Verifying : MariaDB-common-10.1.34-1.el7.centos.x86_64 6/10 Verifying : MariaDB-devel-10.1.34-1.el7.centos.x86_64 7/10 Verifying : MariaDB-compat-10.1.34-1.el7.centos.x86_64 8/10 Verifying : MariaDB-shared-10.1.34-1.el7.centos.x86_64 9/10 Verifying : MariaDB-client-10.1.34-1.el7.centos.x86_64 10/10 Updated: MariaDB-client.x86_64 0:10.2.16-1.el7.centos MariaDB-common.x86_64 0:10.2.16-1.el7.centos MariaDB-compat.x86_64 0:10.2.16-1.el7.centos MariaDB-devel.x86_64 0:10.2.16-1.el7.centos MariaDB-shared.x86_64 0:10.2.16-1.el7.centos Complete! [root@server ~]#
MariaDB-server以外のrpmパッケージをアップデートします。この方法ですと依存関係で悩まずに済みます。オレ流のやり方なので不具合があっても保証はしません。心配な方は公式サイトにある推奨方法で作業することをオススメします(依存関係をどう処理するか?頭を悩ませながら...ね)。
[root@server ~]# systemctl start mariadb [root@server ~]# mysql_upgrade -u root -p Enter password: Phase 1/7: Checking and upgrading mysql database Processing databases mysql mysql.column_stats OK mysql.columns_priv OK mysql.db OK mysql.event OK mysql.func OK mysql.gtid_slave_pos OK mysql.help_category OK mysql.help_keyword OK mysql.help_relation OK mysql.help_topic OK mysql.host OK mysql.index_stats OK mysql.innodb_index_stats OK mysql.innodb_table_stats OK mysql.ndb_binlog_index OK mysql.plugin OK mysql.proc OK mysql.procs_priv OK mysql.proxies_priv OK mysql.roles_mapping OK mysql.servers OK mysql.table_stats OK mysql.tables_priv OK mysql.time_zone OK mysql.time_zone_leap_second OK mysql.time_zone_name OK mysql.time_zone_transition OK mysql.time_zone_transition_type OK mysql.user OK Phase 2/7: Installing used storage engines... Skipped Phase 3/7: Fixing views Phase 4/7: Running 'mysql_fix_privilege_tables' WARNING: NULL values of the 'db_collation' column ('mysql.proc' table) have been updated with default values. Please verify if necessary. Phase 5/7: Fixing table and database names Phase 6/7: Checking and upgrading tables Processing databases wordpress wordpress.wp_commentmeta OK wordpress.wp_comments OK wordpress.wp_ewwwio_images OK wordpress.wp_links OK wordpress.wp_lrgawidget_global_settings OK wordpress.wp_options OK wordpress.wp_postmeta OK wordpress.wp_posts OK wordpress.wp_siteguard_history OK wordpress.wp_siteguard_login OK wordpress.wp_term_relationships OK wordpress.wp_term_taxonomy OK wordpress.wp_termmeta OK wordpress.wp_terms OK wordpress.wp_usermeta OK wordpress.wp_users OK Phase 7/7: Running 'FLUSH PRIVILEGES' OK [root@server ~]#
MariaDB-serverを起動して、"mysql_upgrade"コマンドでデータベースのアップグレードを行います。あとはWordPressやphpMyAdminなどのWebAppから正常にアクセス出来ることを確認できたら、アップグレードは終了です。お疲れ様でした。