Come reinizializzare i file / var / lib / mysql?


15

A causa di un incidente ho eliminato l'intera directory / var / lib / mysql. Poiché il database non conteneva nulla di importante, non voglio passare attraverso il fastidio di ripristinarlo da un vecchio backup, ma invece creare la struttura di directory da zero. Come posso farlo senza reinstallare MySQL?

Risposte:


18

Dovresti essere in grado di eseguire mysql_install_dbdalla riga di comando

mysql_install_db inizializza la directory dei dati MySQL e crea le tabelle di sistema che contiene, se non esistono. Inizializza inoltre il tablespace di sistema e le relative strutture dati necessarie per gestire le tabelle InnoDB. A partire da MySQL 5.6.8, mysql_install_db è uno script Perl e può essere utilizzato su qualsiasi sistema con Perl installato. Prima della 5.6.8, è uno script di shell ed è disponibile solo su piattaforme Unix.

Si prega di leggere la documentazione di MySQL per interomysql_install_db , quindi ...

PROVACI !!!

Se non funziona al primo tentativo, farlo

mkdir /var/lib/mysql
mkdir /var/lib/mysql/mysql
chown -R mysql:mysql /var/lib/mysql 

poi corri di mysql_install_dbnuovo


Ha funzionato al primo tentativo. Grazie. La password è un altro problema.
Konrad Gajewski,


potresti anche aver bisogno restorecon -r /var/lib/mysqlse SELinux è abilitato
Mahmoud Mostafa,

9

Per MySQL 5.7> solo:

# Move or remove the original dir
mv /var/lib/mysql /tmp/mysql

# Create a new dir
mkdir /var/lib/mysql

# Change owner to mysql (user and group)
chown -R mysql:mysql /var/lib/mysql

# Create MySQL initial data
mysqld --initialize

1
l'unica risposta che ha funzionato per me
Bahaa Odeh,

mysql Ver 14.14 Distrib 5.7.22, per Linux (x86_64) usando il wrapper EditLine
Bahaa Odeh
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.