Lesstep
GitHub Actions・Ubuntu 26.04・MySQL・2026年11月5日に確認

ubuntu-latest(Ubuntu 26.04)で「ERROR 1524 (HY000): Plugin 'mysql_native_password' is not loaded」:ランナーの MySQL が 8.4 に・抜け道

ランナーのイメージには、MySQL が止まった状態で入っています。ubuntu-24.04 では MySQL 8.0.46、2026年11月に ubuntu-latest の向き先になる ubuntu-26.04 では MySQL 8.4.11 です(ランナーのイメージの README)。MySQL のドキュメントには、mysql_native_password プラグインは 8.0.34 で非推奨、8.4 で既定で無効、9.0.0 で削除とあります。WordPress などの PHP のテストでよく使う、ユーザーをこのプラグインに切り替えるステップが、リポジトリを何も変えていないのに毎回失敗するようになりました。

見え方

Run sudo systemctl start mysql
mysql -h 127.0.0.1 --port 3306 -u root --password=root -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';"
ERROR 1524 (HY000) at line 1: Plugin 'mysql_native_password' is not loaded

(tarosky/workflows #145。失敗したジョブには Image: ubuntu-26.04、前の日に成功したジョブには Image: ubuntu-24.04 と出ていました。)2026年10月22日から11月4日に、convertkit-wordpress #1270・pantheon-hud #267・eventespresso/actions #77・flarum #5273 でも同じステップが失敗しています。

抜け道

どの MySQL につないでいるかを確かめる

tarosky/workflows #145 では、services.mysql のコンテナ(mysql:8.0)が一度も使われていなかったことも分かりました。ports: - 3306/tcp だと Docker はホスト側に 32768 のような空いたポートを割り当てるので、127.0.0.1:3306 につないだテストはランナー自身の MySQL に届いていました。- 3306:3306 で割り当てるか、job.services.mysql.ports['3306'] からポートを読み、同じジョブではランナーの MySQL を起動しないようにします。

mysql -h 127.0.0.1 -P 3306 -u root -proot -e "SELECT VERSION(), @@hostname;"

見分け方

失敗したジョブを IntelliJ IDEA から見るなら

Pipeline Inbox for GitHub Actions Workflows は、Lesstep が作っている JetBrains IDE(2024.1 以降)のプラグインです。すべてのリポジトリの実行を、ジョブ・ステップと一緒に IDE のツールウィンドウに並べるので、イメージが変わった後にいくつものリポジトリで失敗し始めたデータベースのステップがすぐ分かり、いまのブランチの実行はステータスバーに出ます。読むのは無料、失敗したジョブの再実行・キャンセル・ワークフローの実行・デプロイのレビューは Pro(月 US$1.50・30日の無料試用つき)です。

JetBrains Marketplace で入れる

GitHub・GitHub Actions は GitHub, Inc. の商標、MySQL は Oracle およびその関連会社の商標、IntelliJ IDEA は JetBrains s.r.o. の商標です。このページは GitHub, Inc.・Oracle・JetBrains のいずれとも提携しておらず、承認も受けていません。

ほかに:Ubuntu 26.04 の pg_dump 18 · 「The ubuntu-latest label will migrate to Ubuntu 26」 · IntelliJ IDEA で使える GitHub Actions のプラグインの比較 · English