FreeBSD 14.2-RELEASEに上げたらいろいろ変わっていた

職場のサーバをFreeBSD 14.2-RELEASEにアップグレードして、ついでにMySQLも8.0から8.4にしたのだけどいろいろ変わっていたので忘備録。

シリアルコンソールのデフォルト速度が速くなっていた

実は以前自宅サーバを14.0にしようとしたところ、シリアルコンソールとして使っているDOS Kermitで文字化けが起こるようになり、13に戻したことがある。その時は原因がfreebsd-updateによるものなのか、14のせいなのかが分からなかったが、後にクリーンインストールで14.2をインストールし、やはり文字化けが起こることを確認した。ただ、インストールをして /etc/ttys を設定した段階では文字化けは起こらず、 /boot/loader.confconsole="comconsole" を追加して再起動すると、ブート画面で文字化けが発生し、その後は文字化けが続く、という状態だった。

でもって、ハンドブックを読むとブート時のシリアルコンソールの速度を指定するパラメータを指定する箇所があることを発見し、もしやと思い設定してみたところ文字化けが解消された。つまり、 /boot/loader.confcomconsole_speed="9600" を指定すればよい。どうやらcomconsoleが指定されている場合、この速度が /etc/ttys の指定を上書きしてしまうようだ。

SSHDのデフォルトの認証方式が厳しくなっていた

昔からSSHクライアントとしてはTera Termを好んで使っているんだけど、14.2に上げたら接続できなくなってしまった。調べてみると、デフォルトでRSA署名に対応しなくなったとのことで、古いバージョンのSSHクライアントから接続できなくなっていたようだ。現行のTera Term 5.3なら大丈夫(鍵ペアを作り直す必要はない)。古いクライアントから接続しなければならないのであれば、 /etc/ssh/sshd_configPubkeyAcceptedAlgorithms=+ssh-rsa を追加すればよい。

MySQL8.4はパスワードの扱いに注意

MySQL8.4では従来のパスワード認証プラグインである mysql_native_password がデフォルトで無効となっている。8.0から始めたのであれば CREATE USER のデフォルトプラグインは新しい cashing_sha2_password になっているはずなので特に問題はないかと思うが、MySQL5系からアップグレードした場合は mysql_native_password のユーザが残っている可能性がある。それに気づかずに8.4にアップグレードしてしまうと、データベースにアクセスできずに頭を抱えてしまうことになる。

そんな場合は、 my.cnf[mysqld] セクションに mysql_native_password=on を追記してMySQLサーバを再起動してあげればよい(参考: https://dev.mysql.com/doc/refman/8.4/en/native-pluggable-authentication.html )。でも、このプラグインはいずれなくなるので、これを機に各ユーザの認証方式を cashing_sha2_password にしておくのが良いだろう。管理者でMySQLにアクセスし、 まず SELECT user, host, plugin from mysql.user; で各ユーザのプラグインを確認する。そして、ALTER USER `ユーザ名`@`IPアドレス` IDENTIFIED WITH cashing_sha2_password BY 'パスワード';mysql_native_password となっているすべてのユーザに対して実行すればよい。終わったら my.cnf も戻しておくのを忘れずに。

8.4へのアップグレード自体は、pkgで8.4をインストールすれば初回起動時にデータのコンバートは行ってくれる。安全に行くなら以下の手順がよいだろう。

  1. MySQL8.0で mysql_native_password のユーザを cashing_sha2_password に更新し、動作確認

  2. MySQLのデータフォルダ(デフォルトなら /var/db/mysql )と my.cnf をバックアップ

  3. MySQLを8.4にアップグレードし、動作確認

  4. FreeBSDを14.2にアップグレードし、MySQL含むパッケージも再インストール

MySQL Workbenchは8.4をサポートしない

WindowsやMacでデータベースのテーブルをちょこちょこ編集する際に使っていたMySQL Workbenchだが、8.4は「動くだろうけどサポート外」ということ。ということで、代替のGUIクライアントを探すことに。"Mysql workbench alternative"とかで検索してみたところ、HeidiSQLの評判が良さそうなのでこれを入れてみた。

コメント(0)

コメントを投稿する際はここをクリック


Note

本サイトのハイパーリンクの一部は、オリジナルのサイトが閉鎖してしまったため"Internet archive Wayback Machine"へのリンクとなっています。そのようなリンクにはアイコン[archive]を付与しています。

本サイトはCookieを使用しています。本サイトにおけるCookieは以下の三種類のみであり、Cookieの内容に基づいてサイトの表示を変更する以外の用途には用いておりません。