mariadb は raw ドライブファイルシステムから起動できません。

mariadb は raw ドライブファイルシステムから起動できません。

私は大容量の仮想ドライブがフォーマットされていてパーティションがないDebian 10マシンを持っています。 df には /dev/sdb として表示されます。 mariadb のインスタンスは Debian 10 の標準として /var/lib/mysql にありますが、レプリケーションによりルートファイルシステムを Bin ログで頻繁に入力します。この問題を軽減するために、大容量/dev/sdbファイルシステムに移動しました。

/dev/sdb(/usr/www1/) のマウントポイントに移動すると、正確に一致する権限を持つ mysql ディレクトリを作成し、ファイルをこの新しい /usr/www1/ mysql ディレクトリに "rsync -avzh" に変更しました。 mariadb サーバー conf ファイルの datadir。実行しようとすると、次のエラーが記録されます。

2021-04-07 15:26:28 0 [ERROR] mysqld: File './mysql-bin.index' not found (Errcode: 30 "Read-only file system")
2021-04-07 15:26:28 0 [ERROR] Aborting

私が見た一般的な解決策はapparmorのエイリアスを追加することでしたが、詳しく見ると、apparmorのMariaDB設定ファイルが空で、apparmorがmariadbに対する権限を追跡しなくなるという説明があります。これは非常に少ない値を提供しますが、mariadbを提供するためです。ユーザーが質問(または同様の質問)をインポートしました。変更は役に立ちませんでしたが、それは私の問題ではないことを示しました。

権限を再度確認し、権限を強化して軽減してみましたが、結果は同じでした。

これで、ドライブは既存のパーティション化でフォーマットされていないため、mariadbがこの方法でフォーマットされたドライブから起動されず、読み取り専用として扱われるのではないかと心配されます。次のlsblkに示すように、システムはそれを読み取り専用として扱いません。

NAME   MAJ:MIN RM    SIZE RO TYPE MOUNTPOINT
sda      8:0    0     75G  0 disk 
├─sda1   8:1    0    512M  0 part /boot/efi
├─sda2   8:2    0   58.5G  0 part /
├─sda3   8:3    0     16G  0 part [SWAP]
└─sda4   8:4    0 1007.5K  0 part 
sdb      8:16   0      1T  0 disk /usr/www1
sr0     11:0    1   14.1M  0 rom  

mariadbが別の方法を使用して起動するファイルシステムを確認し、読み取り専用として誤って解釈する可能性はありますか? mariadbで使用するには、このドライブをパーティションに再構築する必要がありますか?

要求された情報を追加するには編集してください。

マウント用の/ etc / fstabエントリ:

/dev/sdb /usr/www1 ext3 defaults,errors=remount-ro 0 1

このファイルシステムは今年すでにapache2で動作し、膨大な数のページを提供しているため、ほとんどのソフトウェアはそれを読み取り専用として扱っていないようです。フォーマットされた方法は完全に偶然でした。私はこのサーバーをインストールする前にLinuxの経験がなく、確かにUSBドライブのレシピに従いました。

衣類ログには通常のエントリがありますが、DENIEDメッセージはありません。常に標準でなければならないリダイレクトに関する5つのメッセージで始まります。システムログにあります。

ベストアンサー1

この質問に直接答えているので、このソリューションのバリエーションに関する記事があります。この問題に対する解決策は、人々がmariadbを/ homeに移動したときに起動できないことを除いて、Web上のすべての例と非常によく似ていることがわかりました。

Debian 10では、systemdはディレクトリに/ usrを含みます。設計上、ウェブサイトで mariadb を使用している場合、/usr の外部では実行できません。これを修正するには sudo を使用します。

vi /etc/systemd/system/multi-user.target.wants/mariadb.service
/ProtectSystem=full
s/full/false/
ZZ
systemctl daemon-reload
systemctl start mariadb

更新するたびにこれを繰り返す必要があるかどうかわからないので、パッチを適用するときは注意してください。

おすすめ記事