Comment réinitialiser les fichiers / var / lib / mysql?

15

En raison d'un incident, j'ai supprimé l'intégralité du répertoire / var / lib / mysql. Étant donné que la base de données ne contient rien d'important, je ne veux pas passer par les tracas de la restaurer à partir d'une ancienne sauvegarde, mais plutôt créer la structure de répertoire à partir de zéro. Comment faire sans réinstaller MySQL?

Konrad Gajewski
la source

Réponses:

18

Vous devriez pouvoir simplement exécuter à mysql_install_dbpartir de la ligne de commande

mysql_install_db initialise le répertoire de données MySQL et crée les tables système qu'il contient, si elles n'existent pas. Il initialise également l'espace disque logique du système et les structures de données associées nécessaires pour gérer les tables InnoDB. Depuis MySQL 5.6.8, mysql_install_db est un script Perl et peut être utilisé sur n'importe quel système avec Perl installé. Avant 5.6.8, il s'agit d'un script shell et n'est disponible que sur les plates-formes Unix.

Veuillez lire la documentation MySQL en entier pourmysql_install_db , puis ...

ESSAIE !!!

Si cela ne fonctionne pas du premier coup, procédez comme suit

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

puis exécutez à mysql_install_dbnouveau

RolandoMySQLDBA
la source
Cela a fonctionné du premier coup. THX. Le mot de passe est un autre problème.
Konrad Gajewski
Voir mon article dba.stackexchange.com/questions/44645/…
RolandoMySQLDBA
vous devrez peut-être également le faire restorecon -r /var/lib/mysqlsi SELinux est activé
Mahmoud Mostafa
9

Pour MySQL 5.7> juste:

# 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
Cristian Deluxe
la source
1
la seule réponse qui a fonctionné pour moi
Bahaa Odeh
mysql Ver 14.14 Distrib 5.7.22, pour Linux (x86_64) utilisant le wrapper EditLine
Bahaa Odeh