2009-02-28 7 views

Odpowiedz

14

tej pory moje doświadczenia z MySQL nie widzę niczego użytkownik kopii zapasowych i ich uprawnieniami poprzez linię poleceń.

ale mogę ci backup ważnych danych poprzez tworzenie kopii zapasowych mysql

mysqldump -u root -p mysql > mysql.sql 
+0

Jak należy to przywrócić? czy jest to po prostu wykonanie pliku wynikowego w pliku informacyjnym? –

6

Użytkownikom i przywileje są przechowywane w databased nazwie „mysql”. Możesz użyć mysqldump do tworzenia kopii zapasowych tabel w bazie danych o nazwie "mysql".

+6

czy możesz dodać, jak je przywrócić? – Dementic

+0

@Dementic Zobacz http://stackoverflow.com/a/12634618/2310830 – RiggsFolly

34
mysql -BNe "select concat('\'',user,'\'@\'',host,'\'') from mysql.user where user != 'root'" | \ 
while read uh; do mysql -BNe "show grants for $uh" | sed 's/$/;/; s/\\\\/\\/g'; done > grants.sql 
+1

Lifesaver, to! – Volomike

19

Można kopii zapasowej bazy danych MySQL za pomocą

mysqldump -u root -p mysql > mysql.sql 

i przywracanie bazy mysql wykonując

mysql -uroot -p mysql < mysql.sql 

nie zapomnij

FLUSH PRIVILEGES

po przywróceniu zrzutu.

Nadzieja to pomaga ...

+0

Dzięki! Po poleceniu 'FLUSH PRIVILEGES', wszystko zaczęło działać – Dzamir

+0

To jest lepsza odpowiedź, ponieważ zawiera polecenie przywracania koloru. Inną opcją jest ponowne uruchomienie procesu serwera zamiast uprawnień do przepłukiwania. – Ligemer

+3

To jest tylko gwarantowane do pracy przy przywracaniu do tej samej wersji MySQL, baza danych "mysql" może się różnić w różnych wersjach i zawiera dużo więcej rzeczy niż tylko użytkownicy/uprawnienia. Jeśli Twoim zamiarem jest migracja użytkowników i uprawnień do innego serwera, odpowiedź @spirit powyżej jest drogą do zrobienia. – kostas

0

chyba dość oczywiste dla wkładek poleceń mysql ale na odpowiedź ducha nad musiał dodać -u głównego -Phasło po obu poleceń mysql

mysql -u głównego -Phasło -BNe "wybierz concat ('\' ', user,' \ '@ \' ', host,' \ '') z mysql.user gdzie user! = 'Root'" | podczas czytania uh; do mysql -u root -ppassword -BNe "pokaż dotacje dla $ uh" | sed 's/$ /; /; s/\\/\/g '; done> grants.sql;