Jak ponownie zainicjować pliki / var / lib / mysql?

15

Z powodu nieszczęścia usunąłem cały katalog / var / lib / mysql. Ponieważ baza danych nie zawierała niczego ważnego, nie chcę przechodzić przez proces przywracania jej ze starej kopii zapasowej, ale zamiast tego utworzyć strukturę katalogów od zera. Jak to zrobić bez ponownej instalacji MySQL?

Konrad Gajewski
źródło

Odpowiedzi:

18

Powinieneś być w stanie po prostu uruchomić mysql_install_dbz wiersza poleceń

mysql_install_db inicjuje katalog danych MySQL i tworzy zawarte w nim tabele systemowe, jeśli nie istnieją. Inicjuje także systemowy obszar tabel i powiązane struktury danych potrzebne do zarządzania tabelami InnoDB. Począwszy od MySQL 5.6.8, mysql_install_db jest skryptem Perla i może być używany w dowolnym systemie z zainstalowanym Perlem. Przed 5.6.8 jest to skrypt powłoki i jest dostępny tylko na platformach Unix.

Przeczytaj całą dokumentację MySQLmysql_install_db , a następnie ...

SPRÓBUJ !!!

Jeśli to nie zadziała przy pierwszej próbie, zrób to

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

następnie biegnij mysql_install_dbponownie

RolandoMySQLDBA
źródło
Udało się za pierwszym razem. Dzięki. Hasło to kolejny problem.
Konrad Gajewski
Zobacz mój post dba.stackexchange.com/questions/44645/…
RolandoMySQLDBA
może być również konieczne, restorecon -r /var/lib/mysqljeśli SELinux jest włączony
Mahmoud Mostafa,
10

W przypadku MySQL 5.7> wystarczy:

# 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
źródło
1
jedyna odpowiedź, która mi
pomogła
mysql 14.14 Distrib 5.7.22, dla Linux (x86_64) przy użyciu opakowania EditLine
Bahaa Odeh