BLOGTIMES
2019/07/05

MariaDB を 10.3 にしようとしたら「A manual upgrade is required.」と言われたので・・・

  mysql 
このエントリーをはてなブックマークに追加

先日、CentOS 7 の MariaDB を 10.3 にアップデートした話を書きましたが、10.1 → 10.3 の場合は 「A manual upgrade is required. 」と言われてしまうことが分かりました。
ちょうど yum でアップデートしようとすると、以下のようなエラーが出ます。

Resolving Dependencies --> Running transaction check ---> Package MariaDB-server.x86_64 0:10.1.40-1.el7.centos will be updated ---> Package MariaDB-server.x86_64 0:10.3.16-1.el7.centos will be an update --> Finished Dependency Resolution Dependencies Resolved ======================================================================================================================================== Package Arch Version Repository Size ======================================================================================================================================== Updating: MariaDB-server x86_64 10.3.16-1.el7.centos mariadb-main 24 M Transaction Summary ======================================================================================================================================== Upgrade 1 Package Total download size: 24 M Is this ok [y/d/N]: y Downloading packages: Delta RPMs disabled because /usr/bin/applydeltarpm not installed. MariaDB-server-10.3.16-1.el7.centos.x86_64.rpm | 24 MB 00:00:50 Running transaction check Running transaction test Transaction test succeeded Running transaction ****************************************************************** A MySQL or MariaDB server package (MariaDB-server-10.1.40-1.el7.centos.x86_64) is installed. Upgrading directly from MySQL 10.1 to MariaDB 10.3 may not be safe in all cases. A manual dump and restore using mysqldump is recommended. It is important to review the MariaDB manual's Upgrading section for version-specific incompatibilities. A manual upgrade is required. - Ensure that you have a complete, working backup of your data and my.cnf files - Shut down the MySQL server cleanly - Remove the existing MySQL packages. Usually this command will list the packages you should remove: rpm -qa | grep -i '^mysql-' You may choose to use 'rpm --nodeps -ev <package-name>' to remove the package which contains the mysqlclient shared library. The library will be reinstalled by the MariaDB-shared package. - Install the new MariaDB packages supplied by MariaDB Foundation - Ensure that the MariaDB server is started - Run the 'mysql_upgrade' program This is a brief description of the upgrade process. Important details can be found in the MariaDB manual, in the Upgrading section. ****************************************************************** error: %pre(MariaDB-server-10.3.16-1.el7.centos.x86_64) scriptlet failed, exit status 1 Error in PREIN scriptlet in rpm package MariaDB-server-10.3.16-1.el7.centos.x86_64 Verifying : MariaDB-server-10.3.16-1.el7.centos.x86_64 1/2 MariaDB-server-10.1.40-1.el7.centos.x86_64 was supposed to be removed but is not! Verifying : MariaDB-server-10.1.40-1.el7.centos.x86_64 2/2 Failed: MariaDB-server.x86_64 0:10.1.40-1.el7.centos MariaDB-server.x86_64 0:10.3.16-1.el7.centos Complete!

仕方がないのでマニュアルでアップデート

マニュアルでアップデートと言っても、やることは一旦アンインストールしてから、再インストールするだけです。
とりあえずエラーメッセージに従って、非互換な部分について確認します。
やはり主な問題は sql_mode の部分でしょうか。

ちなみに yum remove しても /var/lib/mysql の下のデータファイルは消えませんが、念のため全データのダンプは取っておきます。
.conf は .rpmsave にリネームされてしまうので、特別な設定を入れている場合にはファイルを復元しておきます。

具体的には以下のような感じでしょうか。

systemctl stop mariadb yum remove MariaDB-server yum install MariaDB-server mv /etc/my.cnf.d/server.conf{,.bak} mv /etc/my.cnf.d/server.conf{.rpmsave,} systemctl start mariadb mysql_upgrade -u root -p

    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/11069
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン