Xibo チュートリアル Vol.11「Xibo V4.4 MySQL8.4 環境へのアップグレード」

 先日V4.4がリリースされバージョンアップしたところ、ややひっかかりましたので、やり方まとめました。
 VPS環境に関してはすんなりいったのですが、ローカル環境はエラーが出てトップページが表示されなくなりました。

 後者に関しては、具体的に言うと MySQLが 8.0 → 8.4 に上がったことによりMySQLの認証まわりの仕様が変わったことによるものです。
 対処療法的ですが、最初は普通にやって問題なければOK!なんかエラー出たら後段を参考にしてみてください。

 先に4.4に上げたことによる新機能がなんであったかお伝えしておきます。
1)スケジュールがウィザード形式になった(つくりやすくなった!?)
2)インタラクティブモードのトリガーにキーボード入力が加わった(androidのみ!?)
3)MySQL が 8.4に上がった
 というわけで、今回はそれほど大きな機能アップはない感じです。
 
 では、いきなりひっかかったところではなく、SSL VPS環境を 4.3 → 4.4 に上げる手順をもう一度順を追ってやってみましょう!

 こちらの記事の Upgrading を参考にしています。環境構築終わっているものをUpgradeする手順になります。
https://community.xibo.org.uk/t/xibo-cms-with-docker-on-ubuntu-22-04/9392#p-27021-upgrading-5

(1)まずはDocker止めてバックアップとってdockerの最新モジュールをダウンロード

cd /opt/xibo
> With SSL
docker compose -f cms_custom-ports.yml stop
> Backup the existing container data
cd /opt
> Delete any old backup version
rm -r xibo-backup
cp -rp xibo xibo-backup

> Download the new docker-compose files
wget -O xibo-docker.tar.gz https://xibosignage.com/api/downloads/cms
tar -zxvf xibo-docker.tar.gz

(2)バックアップをとって、解凍したdocker用のymlテンプレートファイルを現行環境に適用
cp cms_custom-ports.yml cms_custom-ports.yml.old
cp cms_custom-ports.yml.template cms_custom-ports.yml

 viでhttps用の ymlを編集します

sudo vi cms_custom-ports.yml

 前から同じところを以下2点直します。

cms-xmrの

ports:- "65500:9505"
→ "9505:9505"

cms-webの

ports:- "65501:80"
→ "127.0.0.1:8080:80"

>pull
docker compose -f cms_custom-ports.yml pull

>docker down
docker compose -f cms_custom-ports.yml down

>docker 起動
docker compose -f cms_custom-ports.yml up -d

B1)エラーが出てログイン画面が出ない場合の対処 #1
 VPS環境はこれでうまくいきましたが、ローカル環境はエラーが出てトップページが出ない状態になってしまいました。
 時系列で言うと、先にローカルの方やってエラーが出ました。なので、常にこうなってしまうのかと思ったのですが違うようです。なんかエラー出てトップページ出なくなった!というときは以下をやってみてください。

 以下はXiboのオフィシャルに載っていたやり方です。
 この作業の目的は、MySQL 8.0/8.4 でデフォルトになった認証方式(caching_sha2_password)に、Xiboのユーザー設定を強制的に合わせることだそうです。passwordは自分の入れてね。

>bashに入ります
docker run --rm -ti -v /opt/xibo/shared/db:/var/lib/mysql mysql:8.4 bash
cd /tmp
echo "ALTER USER cms IDENTIFIED WITH caching_sha2_password BY 'password';" > init.txt
mysqld --init-file=/tmp/init.txt &

>bashから抜けます
exit

>docker 一旦停止
docker compose -f cms_custom-ports.yml stop

>docker 再起動
docker compose -f cms_custom-ports.yml up -d

B2)エラーが出てログイン画面が出ない場合の対処 #2

 本件の対処で先に見つけたやり方は以下でした。参考までに載せておきます。Geminiにエラー状況ぶちこんだら出てきたもの。

 以下の1行をcms_custom-ports.yml の cms-db サービス(MySQL)の command セクションに以下を追記します。
これはmysql_native_passwordがMySQL8.4からdefaultではOFFになってしまったため、以下のコマンドでONにするというもの。

command: --default-authentication-plugin=mysql_native_password

 mysql_native_passwordはゆくゆくはなくなる予定のものらしくこの解決の仕方は当面はいいがそのうちダメになるかもしれないそう。なのでこのやり方でもいけるが、xiboオフィシャルに載ってるやり方の方がいいでしょう。

 今回どっちかと言うとはじめてAI使って環境構築したのですが、これは問題解決時間を相当に短縮できる。やった操作とエラーをAIにぶちこむと問題点を見つけてくれる。長いエラーも読まなくていい!というわけでデバッグツールとしてAIは有用ですな。

 以下は参考にしたオフィシャルのMySQL 8.4upgradeの話です
https://community.xibo.org.uk/t/mysql-8-0-8-4-upgrade-notes-mysql-native-password/36959

 では、Xibo4.4の世界をお楽しみください!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です