FreeBSD/aarch64 13.2 + MySQL8.0 : failed precmd routine for mysql で起動しない

数日前から Raspberry Pi 4 上で MySQL 8.0 を使おうとして苦戦しています。

MySQLサーバーを起動しようとすると、「mysql-server: WARNING: failed precmd routine for mysql」と出てサービスが落ちる。

同エラーメッセージは、旧ファイルが残っている場合も表示されますが、mysql関係のファイルとディレクトリーを初期化すれば、解決できる。

解決できないのは以下の環境

  • OS: FreeBSD 13.2 aarch64
  • MySQL: Ver 8.0.33 for FreeBSD13.2 on aarch64
  • 発生モード:データベースが初期化中に以下の状態まで生成された時点で落ちる。画面には failed precmd routine for mysql の文字だけ表示される。
root@generic:/var/db/mysql # ll
total 141672
-rw-r-----  1 mysql  mysql    1179648 Oct 21 13:02 #ib_16384_0.dblwr
-rw-r-----  1 mysql  mysql    9568256 Oct 21 13:02 #ib_16384_1.dblwr
drwxr-x---  2 mysql  mysql        512 Oct 21 13:02 #innodb_redo/
-rw-r-----  1 mysql  mysql         56 Oct 21 13:02 auto.cnf
-rw-r-----  1 mysql  mysql  134217728 Oct 21 13:02 ibdata1
-rw-r-----  1 mysql  mysql          0 Oct 21 13:02 mysql-bin.index

mysql がロギングを始める前に落ちるので、詳細不明だが、mysql スタートコマンドを

sh -x mysql-server onestart

と叩くと、

+ [ -n mysql_prestart ]
+ debug 'run_rc_command: start_precmd: mysql_prestart '
+ eval 'mysql_prestart '
+ mysql_prestart
+ [ ! -d /var/db/mysql/mysql/. ]
+ mysql_create_auth_tables
+ eval /usr/local/libexec/mysqld '--defaults-extra-file=/usr/local/etc/mysql/my.cnf' --initialize-insecure '--basedir=/usr/local' '--datadir=/var/db/mysql' '--user=mysql'
+ return 1
+ _return=1
+ [ 1 -ne 0 ]
+ [ -z '' ]
+ return 1
+ warn 'failed precmd routine for mysql'
+ [ -x /usr/bin/logger ]
+ logger '/usr/local/etc/rc.d/mysql-server: WARNING: failed precmd routine for mysql'
+ echo '/usr/local/etc/rc.d/mysql-server: WARNING: failed precmd routine for mysql'
/usr/local/etc/rc.d/mysql-server: WARNING: failed precmd routine for mysql
+ return 1

と、mysql_create_auth_tables ルーチンで落ちている事がわかる。

実行環境を疑い、以下の切り分けを行った。

  • Raspberry Pi 4 4GB 2台で試したが症状に変化なし。(H/W故障ではない。)
  • ファイルシステムを SDメモリ上 と USB SSD で試してみたが、症状に変化なし。(ストレージが壊れているわけではなさそう。)
  • バイナリーインストールと ports コレクションからのソースビルドの両方を試してみたものの症状に変化なし。
  • Raspberry Pi2 V1.1 32bit OS + MySQL 8.0.32(バイナリーはこれが最新だった)は起動した。
  • FreeBSD/amd64 13.2 + MySQL8.0.33 は起動した
  • プラットフォームを Raspberry Pi3/aarch64 FreeBSD 12.4 をSDメモリ上に構築し、MySQL8.0.33 をインストールし切り分けしてみたが結果は、起動せず。つまり、OS側は関係なさそう。
    root@generic:/home/freebsd # service mysql-server onestart
    /usr/local/etc/rc.d/mysql-server: WARNING: failed precmd routine for mysql
    root@generic:/home/freebsd # uname -a
    FreeBSD generic 12.4-RELEASE FreeBSD 12.4-RELEASE r372781 GENERIC arm64

8.0.32 のソースを入手して試そうかと思ったものの、8.0.33 のソースビルドに Raspberry Pi4 で8時間以上かかったので、もう、その元気なし。ビルド8時間、テスト10秒でNG という現実は疲れる。

MySQL8.0 データベースサーバーを Raspberry Pi4 に引っ越そうかと思っていましたが、計画は中止。

動作が確認できている FreeBSD/arm7 32bit か FreeBSD/amd64 で構築することを検討中。32bit FreeBSD はOS更新をソースビルドで行わないといけないので、サーバー環境としては安全性に欠けるため、結局は AMD64アーキテクチャのサーバーを使わざるを得ないかな~。外からは見えないところに置くから、OSの穴には目をつむって運用開始してみるか。。。。葛藤中。

ラズパイ4サーバー、USBブートしてもレスポンスが良く静音、発熱も許容範囲でいいんですけどね。

コメントを残す