Mi sembra il tuo datadir
si trova in un proprio file system.
I file system ext, come la maggior parte dei FS sotto Unix, hanno alla radice una directory chiamata lost+found
. Esiste per consentire ai file che vengono staccati (ovvero, hanno contenuto, ma nessuna voce di directory associata) di essere ricollegati da qualche parte quando viene fscked un file system incoerente (vedi, ad esempio, https://unix.stackexchange.com/ domande/18154/qual è-lo-scopo-della-cartella-trovata-in-linux-e-unix per maggiori dettagli). Questo scopo è importante nel ripristino di emergenza, quindi non dovresti eliminare la directory.
Il tuo problema sorge quando il punto di montaggio, su cui è montato il file system che contiene quella directory, viene affidato interamente a un'applicazione che si aspetta che tutto in quel punto di montaggio appartenga ad esso. MySQL è uno di questi, tenta di interpretare il lost+found
directory come qualcosa di correlato a db e (non irragionevolmente) fallisce.
La soluzione migliore non è mai quella di dedicare un intero FS a un'applicazione, ma invece di montare l'FS su un punto di montaggio non specifico dell'applicazione, ad esempio /data1
, crea una sottodirectory al di sotto, ad esempio /data1/mysql
e riconfigurare l'applicazione per utilizzare quella directory come datadir.
Cappellaio Matto ha spiegato bene l'errore. Ma da allora i tempi sono cambiati e ora MySQL (dal 5.6.3) ha un'opzione per ignorare questa directory. Basta aggiungere questa dichiarazione nel tuo /etc/mysql/my.cnf
file:
ignore-db-dir=lost+found
Dopo il riavvio di MySQL puoi controllarlo con il comando:
show global variables like 'ignore_db_dirs';
Se vuoi ignorare più directory, devi specificare l'opzione per ciascuna di esse separatamente.
Fonte:http://www.chriscalender.com/ignoring-the-lostfound-directory-in-your-datadir/
La posizione di my.cnf in CentOS 7.2 se si utilizza MariaDB è in
/etc/my.cnf
Puoi riavviare il servizio con
systemctl restart mariadb.service
ignore-db-dir dovrebbe essere inserito nella sezione [mysqld] e non in quella [mysqld_safe].
[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