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 month, 2 weeks 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 4 days, 23 hours ago by cloudy.
Viewing 8 reply threads
  • You must be logged in to reply to this topic.

Next article

フォーラムについて