あなたの datadir
のように見えます 独自のファイル システムにあります。
Ext ファイル システムは、Unix のほとんどの FS と同様に、ルートに lost+found
というディレクトリがあります。 .一貫性のないファイルシステムがfsckされたときに、分離されたファイル(つまり、コンテンツはあるが関連するディレクトリエントリがない)をどこかに再接続できるようにするために存在します(たとえば、https://unix.stackexchange.com/を参照)詳細については、質問/18154/what-is-the-purpose-of-the-lostfound-folder-in-linux-and-unix を参照してください)。この目的は災害復旧において重要であるため、ディレクトリを削除しないでください。
そのディレクトリを含むファイルシステムがマウントされているマウントポイントが、そのマウントポイント内のすべてがそれに属することを期待するアプリケーションに完全に渡されると、問題が発生します。 MySQL はその 1 つであり、lost+found
を解釈しようとします。 ディレクトリを db 関連のものとして認識し、(不当ではありませんが) 失敗します。
あなたの最善の策は、FS全体をアプリケーション専用にすることではなく、FSをアプリケーション固有のマウントポイント、たとえば /data1
にマウントすることです 、その下にサブディレクトリを作成します (例:/data1/mysql
) 、そのディレクトリを datadir として使用するようにアプリケーションを再構成します。
MadHatter はエラーをよく説明しました。しかしその後時代は変わり、現在 MySQL (5.6.3 以降) にはこのディレクトリを無視するオプションがあります。このステートメントを /etc/mysql/my.cnf
に追加するだけです ファイル:
ignore-db-dir=lost+found
MySQL の再起動後、次のコマンドで確認できます:
show global variables like 'ignore_db_dirs';
複数のディレクトリを無視する場合は、それらのディレクトリごとに個別にオプションを指定する必要があります。
ソース:http://www.chriscalender.com/ignoring-the-lostfound-directory-in-your-datadir/
MariaDB を使用している場合、CentOS 7.2 での my.cnf の場所は
にあります/etc/my.cnf
でサービスを再起動できます
systemctl restart mariadb.service
ignore-db-dir は、[mysqld_safe] セクションの下ではなく、[mysqld] セクションの下に配置する必要があります。
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
ignore-db-dir=lost+found
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d