MariaDBのアップデートができない(10.1→10.5)

TOP Forums バグ報告と提案(Requests and Feedback) MariaDBのアップデートができない(10.1→10.5)

MariaDBのアップデートができない(10.1→10.5)

Tagged: 

Viewing 8 reply threads
  • Author
    Posts
    • #978
      Yutori
      Participant

        お世話になります。

        現在、個人ブログでKUSANAGIを使用しております。
        以下、相談しない内容の経緯です。

        ① 使用しているWordpressテーマが、「現在のPHPバージョン(7.3.10)では動作しない」というアラートが出力されました。
        ② PHP7.4はEOLがあるため、PHP8にアップデートしようと考えました。
        ③ 「yum update -y」 を実行したところ、MariaDBに関するエラーが出力されました。

        yum update -y

        ④ 10.1なので、10.5にあげないといけないと思い、「kusanagi upgrade mariadb 10.5」を実行しました。
        ⑤しかし、「MariaDBは既にアップグレードされています。完了しました。」と出力されます。「kusanagi status」で確認しても10.1のままです。

        特にエラーが出力されていないため、次のアクションに悩んでしまい、この度投稿させていただきました。

      • #979
        Yutori
        Participant

          失礼いたしました。
          途中で投稿してしまいました。

          ③で起きた内容です。


          http://yum.mariadb.org/10.1/centos7-amd64/repodata/3a7d188d8582a6f19501beacd187e9bfc571ebb572b74167fd71aed190b9c778-filelists.sqlite.bz2: [Errno 14] HTTP Error 404 – Not Found
          他のミラーを試します。

          [中略]

          failure: repodata/3a7d188d8582a6f19501beacd187e9bfc571ebb572b74167fd71aed190b9c778-filelists.sqlite.bz2 from mariadb: [Errno 256] No more mirrors to try.
          http://yum.mariadb.org/10.1/centos7-amd64/repodata/3a7d188d8582a6f19501beacd187e9bfc571ebb572b74167fd71aed190b9c778-filelists.sqlite.bz2: [Errno 14] HTTP Error 404 – Not Found

          以下、FAQを確認しまして、MariaDBの10.1だからダメなのだと判断し、10.5に上げようと考えました。

          FAQ

          ーーーー
          以下、KUSANAGIの現在の状況です。

          Profile: WordPress
          FQDN: pursue.fun
          Type: WordPress
          KUSANAGI Version 8.4.3-2
          conoha

          *** (active) nginx ***
          ● nginx.service – The NGINX HTTP and reverse proxy server
          Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
          Active: active (running) since 土 2022-07-02 16:21:42 JST; 3h 12min ago

          *** (active) php7-fpm ***
          ● php7-fpm.service – The PHP FastCGI Process Manager
          Loaded: loaded (/usr/lib/systemd/system/php7-fpm.service; enabled; vendor preset: disabled)
          Active: active (running) since 土 2022-07-02 16:21:42 JST; 3h 12min ago

          *** (active) MariaDB ***
          ● mariadb.service – MariaDB 10.1.41 database server
          Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
          Active: active (running) since 木 2019-10-31 23:44:24 JST; 2 years 8 months ago

          *** ruby ***
          ruby 2.4.6p354 (2019-04-01 revision 67394) [x86_64-linux]

          *** add-on ***

          *** Cache Status ***
          bcache off
          fcache off

          *** WAF ***
          off

          *** SELinux ***
          off (permanent)

          完了しました。

        • #980
          cloudy
          Participant

            yutori さん、こんにちは。

            kusanagi status の情報をありがとうございます。
            KUSANAGI 8 Version 8.4.3-2 ですね。
            複数問題があるようなので、分けて考えていただければと思います。
            それぞれ解説します。

            1. kusanagi upgrade mariadb 10.5 コマンド

            こちらは KUSANAGI 8.6.0-1 以上で使用可能なコマンドです。
            ご使用の KUSANAGI 8 のバージョンは 8.4.3-2 なので、そもそも正常に実行できていない恐れがあります。

            KUSANAGI バージョンアップ情報 8.6.0-1

            2. KUSANAGI 8 最新版にアップデート

            1.の理由により KUSANAGI 8 自体のバージョンが古いことが問題です。
            トップページにも記載がある通り、KUSANAGI 8 最新版にアップデートすると問題が解決することがあります。

            yum update kusanagi
            yum update –enablerepo=remi,remi-php56

            今回のコマンド実行できなかったケースは、まさに上記に該当します。
            バージョンアップを行う前には、必ずバックアップを取っておいてください。
            また、パッケージのバージョンアップ後はサーバーの再起動をしてください。

            3. KUSANAGI 8 最新版にアップデートに失敗する

            2.の作業で失敗した場合です。

            私の予想ですが、2.は失敗するのではないでしょうか?
            そして、今回の問題はこの項目が解決できればすべて解決するでしょう。

            エラーを読む限り、MariaDB 10.1 のパッケージがないために起こっている状況です。
            こういうケースでは、一時的にエラーを起こしているパッケージを無視するとうまくいく場合があります。

            FAQ に記載がある通り、エラーを起こしているパッケージを無視させるには --disablerepo を使用します。
            FAQ では別パッケージの例が出ていますが、原理は同じです。

            yum clean all
            yum update –disablerepo=mariadb

            KUSANAGI 8 FAQ – Q5. yum のアップデートを実行すると、エラーが出力されてアップデートできません。
            以下のコマンドのとおり、 yum アップデート時に認証に失敗するリポジトリを対象外指定をして〜 の部分

            FAQ

            エラーで実行できなかった場合は、理由はエラーメッセージに書かれているとおりなので、そのエラーのモジュールを一時的に –disablerepo に追加します。
            上記のアップデートが上手く実行できた場合は、2.に戻って改めてパッケージ類をアップデートしてください。

            こちらのエラーの原因は FAQ でも書かれている通り、KUSANAGI ベースイメージの CentOS 側で MariaDB 10.1 のサポートが完全に終了しているため表示されるものです。
            KUSANAGI 8 自体のバージョンアップがこまめにされていないようですので、今回のアップデート時に大きな差分ができ発生したと思われます。
            こまめなアップデートを推奨します。

            4. MariaDB 10.5 への移行

            3.まで完了すると kusanagi upgrade mariadb 10.5 コマンドが使用できると思います。
            バージョンアップを行う前には、必ずバックアップを取っておいてください。

            MariaDB のバージョンアップ後はサーバーの再起動をしてください。
            質問には記載はありませんでしたので、もしかしたら作業漏れているのかも?と思っています。

            以上、ご確認ください。

          • #981
            cloudy
            Participant

              yutori さん、追記です。

              今回の目的は PHP 8 系を使用したいということですが、タイトルやタグが MariaDB に関する内容であったため、上記回答にとどめております。

              MariaDB 10.1 は FAQ にも記載がある通り、出来うる限り 10.3 以上へアップデートおすすめしています。
              ただし、MariaDB の最新リリースでは EOL の取り扱い方が変わっているのでご注意ください。

              https://mariadb.com/newsroom/press-releases/mariadb-announces-new-innovation-release-model/

              * MariaDB 10.6 以前: リリースから 5 年のサポート期間
              * MariaDB 10.7 以降: リリースバージョンによりサポート期間が 1 年もしくは 5 年

              MariaDB 10.8 / 10.7 などは最新のように見えますが、LTS ではないためサポート期間が 1 年しかなくサポート終了が早いためおすすめしません。
              現在、LTS (長期サポート) されている MariaDB バージョンは 10.6 / 10.5 / 10.4 / 10.3 となっています。
              特にこだわりがないようでしたら、KUSANAGI 8 最新版で初期設定の MariaDB 10.5 をご利用になると良いと思います。
              ※この情報は、この回答を参考にされる他の方の記録としても残しておきます。

              MariaDB バージョンごとの EOL
              https://mariadb.com/kb/en/mariadb-server-release-dates/

            • #982
              Yutori
              Participant

                cloudy様

                まさかこんなに早くご回答頂けるとは思ってもいませんでした。
                ご丁寧にありがとうございます。

                > 特にこだわりがないようでしたら、KUSANAGI 8 最新版で初期設定の MariaDB 10.5 をご利用になると良いと思います。
                MariaDBに関する追加情報もありがとうございます。こだわりもございませんので、cloudy様からおすすめいただいたように致します。

                ーーー

                いただいた回答をもとに試してみたのですが、③で同じエラー(MariaDBのパッケージが無い旨)が出てしまいました・・・。

                ②を実行した後の状況です。

                ーーー
                yum update –enablerepo=remi,remi-php56

                failure: repodata/3a7d188d8582a6f19501beacd187e9bfc571ebb572b74167fd71aed190b9c778-filelists.sqlite.bz2 from mariadb: [Errno 256] No more mirrors to try.
                http://yum.mariadb.org/10.1/centos7-amd64/repodata/3a7d188d8582a6f19501beacd187e9bfc571ebb572b74167fd71aed190b9c778-filelists.sqlite.bz2: [Errno 14] HTTP Error 404 – Not Found

                yum clean all
                yum update -y –disablerepo=mariadb ca-certificates
                ↑リンク先を参照しつつコマンド実行したため、cloudy様が記載してくださったコマンドとは異なります。間違えてしまいました。

                =================================================================================================================================================================================
                Package アーキテクチャー バージョン リポジトリー 容量
                =================================================================================================================================================================================
                更新します:
                ca-certificates noarch 2021.2.50-72.el7_9 updates 379 k

                トランザクションの要約
                =================================================================================================================================================================================
                更新 1 パッケージ

                総ダウンロード容量: 379 k
                Downloading packages:
                Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
                ca-certificates-2021.2.50-72.el7_9.noarch.rpm | 379 kB 00:00:00
                Running transaction check
                Running transaction test
                Transaction test succeeded
                Running transaction
                更新します : ca-certificates-2021.2.50-72.el7_9.noarch 1/2
                整理中 : ca-certificates-2018.2.22-70.0.el7_5.noarch 2/2
                検証中 : ca-certificates-2021.2.50-72.el7_9.noarch 1/2
                検証中 : ca-certificates-2018.2.22-70.0.el7_5.noarch 2/2

                更新:
                ca-certificates.noarch 0:2021.2.50-72.el7_9

                完了しました!

                コマンドを間違えていたことに気づき、cloudy様が書いてくださっていたコマンドを再度実行
                yum clean all
                yum update –disablerepo=mariadb

                –> 依存性解決を終了しました。
                エラー: パッケージ: kusanagi-php7-7.4.30-2.noarch (kusanagi)
                要求: libicuio.so.69()(64bit)
                エラー: パッケージ: kusanagi-php7-7.4.30-2.noarch (kusanagi)
                要求: libonig.so.105()(64bit)
                エラー: パッケージ: kusanagi-php8-8.0.20-2.el7.x86_64 (kusanagi)
                要求: libicuio.so.69()(64bit)
                エラー: パッケージ: kusanagi-nginx-1.21.6-2.noarch (kusanagi)
                要求: libgd.so.103()(64bit)
                エラー: パッケージ: kusanagi-php7-7.4.30-2.noarch (kusanagi)
                要求: libicudata.so.69()(64bit)
                エラー: パッケージ: kusanagi-php7-7.4.30-2.noarch (kusanagi)
                要求: libgd.so.103()(64bit)
                エラー: パッケージ: kusanagi-php7-7.4.30-2.noarch (kusanagi)
                要求: libicuuc.so.69()(64bit)
                エラー: パッケージ: kusanagi-php8-8.0.20-2.el7.x86_64 (kusanagi)
                要求: libicudata.so.69()(64bit)
                エラー: パッケージ: kusanagi-php7-7.4.30-2.noarch (kusanagi)
                要求: libicui18n.so.69()(64bit)
                エラー: パッケージ: kusanagi-php8-8.0.20-2.el7.x86_64 (kusanagi)
                要求: libgd.so.103()(64bit)
                エラー: パッケージ: kusanagi-php8-8.0.20-2.el7.x86_64 (kusanagi)
                要求: libonig.so.105()(64bit)
                エラー: パッケージ: kusanagi-php8-8.0.20-2.el7.x86_64 (kusanagi)
                要求: libicuuc.so.69()(64bit)
                エラー: パッケージ: kusanagi-php8-8.0.20-2.el7.x86_64 (kusanagi)
                要求: libicui18n.so.69()(64bit)
                問題を回避するために –skip-broken を用いることができます。
                これらを試行できます: rpm -Va –nofiles –nodigest

                One of the configured repositories failed (MariaDB),
                and yum doesn’t have enough cached data to continue. At this point the only
                safe thing yum can do is fail. There are a few ways to work “fix” this:

                1. Contact the upstream for the repository and get them to fix the problem.

                2. Reconfigure the baseurl/etc. for the repository, to point to a working
                upstream. This is most often useful if you are using a newer
                distribution release than is supported by the repository (and the
                packages for the previous distribution release still work).

                3. Run the command with the repository temporarily disabled
                yum –disablerepo=mariadb …

                4. Disable the repository permanently, so yum won’t use it by default. Yum
                will then just ignore the repository until you permanently enable it
                again or use –enablerepo for temporary usage:

                yum-config-manager –disable mariadb
                or
                subscription-manager repos –disable=mariadb

                5. Configure the failing repository to be skipped, if it is unavailable.
                Note that yum will try to contact the repo. when it runs most commands,
                so will have to try and fail each time (and thus. yum will be be much
                slower). If it is a very temporary problem though, this is often a nice
                compromise:

                yum-config-manager –save –setopt=mariadb.skip_if_unavailable=true

                failure: repodata/repomd.xml from mariadb: [Errno 256] No more mirrors to try.
                http://yum.mariadb.org/10.1/centos7-amd64/repodata/repomd.xml: [Errno 14] HTTP Error 404 – Not Found

                大変恐れ入りますが、ご確認いただけますと幸いです。よろしくお願いいたします。

              • #983
                Yutori
                Participant

                  時間を置き、改めて試してみました。

                  ①—————————————–
                  VPSを再起動

                  yum clean all

                  yum update –disablerepo=mariadb

                  yum update kusanagi

                  failure: repodata/repomd.xml from mariadb: [Errno 256] No more mirrors to try.
                  http://yum.mariadb.org/10.1/centos7-amd64/repodata/repomd.xml: [Errno 14] HTTP Error 404 – Not Found

                  ②—————————————–
                  yum clean all

                  yum -y update

                  failure: repodata/repomd.xml from mariadb: [Errno 256] No more mirrors to try.
                  http://yum.mariadb.org/10.1/centos7-amd64/repodata/repomd.xml: [Errno 14] HTTP Error 404 – Not Found

                  yum update –disablerepo=mariadb

                  エラー: パッケージ: kusanagi-php7-7.4.30-2.noarch (kusanagi)
                  要求: libicuio.so.69()(64bit)
                  エラー: パッケージ: kusanagi-php7-7.4.30-2.noarch (kusanagi)
                  要求: libonig.so.105()(64bit)
                  エラー: パッケージ: kusanagi-php8-8.0.20-2.el7.x86_64 (kusanagi)
                  要求: libicuio.so.69()(64bit)
                  エラー: パッケージ: kusanagi-nginx-1.21.6-2.noarch (kusanagi)
                  要求: libgd.so.103()(64bit)
                  エラー: パッケージ: kusanagi-php7-7.4.30-2.noarch (kusanagi)
                  要求: libicudata.so.69()(64bit)
                  エラー: パッケージ: kusanagi-php7-7.4.30-2.noarch (kusanagi)
                  要求: libgd.so.103()(64bit)
                  エラー: パッケージ: kusanagi-php7-7.4.30-2.noarch (kusanagi)
                  要求: libicuuc.so.69()(64bit)
                  エラー: パッケージ: kusanagi-php8-8.0.20-2.el7.x86_64 (kusanagi)
                  要求: libicudata.so.69()(64bit)
                  エラー: パッケージ: kusanagi-php7-7.4.30-2.noarch (kusanagi)
                  要求: libicui18n.so.69()(64bit)
                  エラー: パッケージ: kusanagi-php8-8.0.20-2.el7.x86_64 (kusanagi)
                  要求: libgd.so.103()(64bit)
                  エラー: パッケージ: kusanagi-php8-8.0.20-2.el7.x86_64 (kusanagi)
                  要求: libonig.so.105()(64bit)
                  エラー: パッケージ: kusanagi-php8-8.0.20-2.el7.x86_64 (kusanagi)
                  要求: libicuuc.so.69()(64bit)
                  エラー: パッケージ: kusanagi-php8-8.0.20-2.el7.x86_64 (kusanagi)
                  要求: libicui18n.so.69()(64bit)
                  問題を回避するために –skip-broken を用いることができます。
                  これらを試行できます: rpm -Va –nofiles –nodigest

                  ③——————————————

                  cd /etc/yum.repos.d
                  vi mysql-community.repo

                  enabled=1を0に書き換えましたが、変わらずでした。

                • #984
                  cloudy
                  Participant

                    Yutori さん、こんにちは。

                    上記でアップデートがエラーになるのでしたら、まずは kusanagi モジュールだけアップデートを試していただいてもよろしいでしょうか?

                    yum clean all
                    yum update kusanagi –disablerepo=mariadb

                    これでエラーが出なければ、残りのモジュールも通常のアップデートを試してみてください。

                    yum update –enablerepo=remi,remi-php56 –disablerepo=mariadb
                    yum update –enablerepo=remi,remi-php56

                    • This reply was modified 1 year, 8 months ago by cloudy.
                  • #986
                    Yutori
                    Participant

                      cloudy様

                      お世話になっております。
                      先ほど試して、無事KUSANAGIのアップデートが完了しました。
                      MariaDBも問題なく10.5で稼働しております。
                      PHPも7.4.30になっており、使用しているテーマのエラーも消えました。
                      ついでなので、後ほどPHP8にしておこうと思います。

                      同じ内容でお困りの方に向けて、私が実行した手順をまとめます。
                      ※色々模索しながら出来たので、正確な手順ではありませんが、参考になれれば幸いです。

                      ーーー

                      yum clean all
                      yum update kusanagi –disablerepo=mariadb


                      yum update –enablerepo=remi,remi-php56 –disablerepo=mariadb
                      yum update –enablerepo=remi,remi-php56


                      yum update kusanagi
                      yum update –enablerepo=remi,remi-php56

                      ②の後、サーバを再起動し、yum clean allをした後③を実行しました。

                      ーーー
                      cloudy様

                      改めて、ご対応いただきありがとうございました。
                      ご丁寧にご教示いただいたおかげで大変助かりました。

                    • #1007
                      cloudy
                      Participant

                        Vagrant で MariaDB 10.1 の古い環境からアップデートを試した結果を残します。

                        `
                        # MariaDB を無視して、順番にアップデート
                        yum update kusanagi –enablerepo=remi,remi-php56 –disablerepo=mariadb
                        yum update –enablerepo=remi,remi-php56 –disablerepo=mariadb

                        # MariaDB をアップグレード
                        # MariaDB をアップグレードをしないと、yum update でエラーは出続けます。
                        kusanagi upgrade mariadb 10.5

                        # MariaDB をアップデート後は、通常の yum update でエラーは出なくなります。
                        yum update kusanagi
                        yum update –enablerepo=remi,remi-php56
                        `

                        • This reply was modified 1 year, 7 months ago by cloudy.
                    Viewing 8 reply threads
                    • You must be logged in to reply to this topic.

                    Next article

                    フォーラムについて