昨日、OpenBSD6.9を7.0にアップグレードしました。
これにより、MariaDBが10.5から10.6にアップグレードされました。
my.cnf
を確認しました 変化し、それは大丈夫だったようです。
それにもかかわらず、OpenBSDでMariaDBを使用しているNextCloudサーバーで問題が見つかりました。
何が起こったのかは、パッケージの更新の失敗でした。
WebブラウザでNextCloudサーバーに接続しました。アプリのダッシュボードはなく、代わりにアップデーターが起動するのを待ちました。それはpkg_add -u
を意味しました NextCloudの更新に失敗しました。ページのスタートボタンをクリックすると、例外が発生したことが表示されました。
nextcloud.log
を読みました サーバーで取得しました:
"level":3,
(...)
"Exception":"Doctrine\\DBAL\\Exception\\DriverException",
"Message":"An exception occurred while executing a query:
SQLSTATE[HY000]:
General error:
4047 InnoDB refuses to write tables with ROW_FORMAT=COMPRESSED or KEY_BLOCK_SIZE.","Code":4047,
COMPRESSED
について 行形式のMariaDBは、「書き込みサポートを削除して機能を廃止する」ことにより、読み取り専用にするための準備を進めています。
彼らはinnodb_read_only_compressed¶
を導入しました ON
であった10.6.0のオプション デフォルトで。
OpenBSD 7.0でNextCloud(21.0.4から)を21.0.5に更新できなかったのはそのためです。これは、OSやアプリのバージョンではなく、バージョンが10.6.0以上のMariaDBとの互換性によるものです。
NextCloudリポジトリに関連する未解決の問題があります。
さて、私は/etc/my.cnf
を編集しました 問題を解決するために一時的に:
[mysqld]
(...)
+ innodb_read_only_compressed = 0
その上、特定のデータベースやテーブルに設定する方法や、可能性すら見つかりませんでした😅
mysqld
を再起動しました サーバーで、Webページのアップデータを再試行しました。結局のところ、それは完全に成功しました。
MariaDBのドキュメントと、Githubの問題やブログなどのいくつかの投稿に感謝します。彼らは私を大いに助けてくれました。