Przechodzę z jednego serwera na drugi i chcę wykonać kopię zapasową wszystkich baz danych + użytkowników / uprawnień / haseł z mojego serwera MySQL. Znalazłem kopię zapasową bazy danych przy użyciu mysqldump
, ale nie mogę zrozumieć, jak wykonać kopię zapasową wszystkich użytkowników i przyznanych uprawnień. Czy istnieje sposób, aby to osiągnąć, czy też muszę to skonfigurować na nowym serwerze?
mysql
migration
installation
Nidhoegger
źródło
źródło
Odpowiedzi:
Baza danych „mysql” zawiera użytkowników / uprawnienia / hasła. Zrób zrzut bazy danych mysql wraz z innymi bazami danych
Te tabele bazy danych mysql zawierają informacje o grantach
użytkownik: konta użytkowników, uprawnienia globalne i inne kolumny inne niż uprawnienia.
db: uprawnienia na poziomie bazy danych.
tables_priv: uprawnienia na poziomie tabeli.
column_priv: uprawnienia na poziomie kolumny.
procs_priv: Procedury składowane i uprawnienia funkcji.
Po przywróceniu sprawdź krzyż z
źródło
mysql.user
może się nie powieść z powodu zmian schematu.mysql_upgrade
to skrypt, który zajmuje się zmianami schematu. Ale oczekuje się, że dokonasz tylko jednej ważnej zmiany na raz i na miejscu, a nie przeładowywania. Zbadaj to. (Przepraszam, nie mam doświadczenia w zakresie aktualizacji.)flush privileges;
nowego mysql. Podobnie jakmysql -u root -p -e'flush privileges;'
To może / spowoduje również ustawienie hasła root mysql na nowym serwerze jako hasła roota ze starego serwera, więc upewnij się, że wiesz, co to jest.Ten skrypt PHP został zainspirowany potrzebą zrobienia tego samego, co oryginalne pytanie, na których serwerach działała inna wersja MariaDB. Ponieważ jest to PHP, powinno działać na każdej platformie obsługującej PHP (wersja 7.3 lub wyższa).
źródło