Korzystam ze automysqlbackup
skryptu, aby zrzucić moje bazy danych mysql, ale chcę mieć do tego użytkownika tylko do odczytu, aby nie przechowywać hasła mojej głównej bazy danych w pliku zwykłego tekstu.
Stworzyłem takiego użytkownika:
grant select, lock tables on *.* to 'username'@'localhost' identified by 'password';
Po uruchomieniu mysqldump
( automysqlbackup
bezpośrednio lub bezpośrednio) pojawia się następujące ostrzeżenie:
mysqldump: Got error: 1044: Access denied for user 'username'@'localhost' to database 'information_schema' when using LOCK TABLES
Czy robię to źle? Czy potrzebuję dodatkowych dotacji dla mojego użytkownika tylko do odczytu? Czy może tylko root
zablokować information_schema
stół? Co się dzieje?
Edytować:
GAH i teraz to działa. Być może wcześniej nie uruchomiłem FLUSH PRIVILEGES.
Nawiasem mówiąc, jak często dzieje się to automatycznie?
Edytować:
Nie, to nie działa. Uruchamianie mysqldump -u username -p --all-databases > dump.sql
ręczne nie generuje błędu, ale nie zrzuca schematu informacji. automysqlbackup
zgłasza błąd.
źródło
mysqldump
: mysqldump nie zrzuca bazy danych Information_SCHEMA. Jeśli nazwiesz tę bazę danych wprost w wierszu poleceń, mysqldump po cichu ignoruje ją. Wygląda na to, że albo strona podręcznika jest nieaktualna (i wyświetla ostrzeżenie), alboautomysqlbackup
wykonuje dodatkowe kontrole zrzutuinformation_schema
. Nie jestem pewien, co to jest, ale nie ma to związku z przyznawaniem dotacji przez użytkowników.Odpowiedzi:
Te uprawnienia powinny być wszystkim, czego potrzeba do mysqldump.
Ponieważ przyznałeś LOCK TABLES, a na LOCK TABLES występuje błąd, wygląda na to, że uprawnienia są niespójne. Czy prowadziłeś
FLUSH PRIVILEGES
?źródło
Ups ... ze strony podręcznika dla
mysqldump
:Wygląda na to, że albo strona podręcznika jest nieaktualna (i wywołuje ostrzeżenie), albo
automysqlbackup
wykonuje dodatkowe kontrole zrzutuinformation_schema
.Nie jestem pewien, co to jest, ale nie ma to związku z przyznawaniem dotacji przez użytkowników.
Edytować
Tak, to błąd w
automysqlbackup
wersji 2.5.1 (korzystający z MySQL 5.1.41 pod Ubuntu 10.04) - próbuje wykonać kopię zapasową,information_schema
kiedy nie powinien.POPRAWKA: Dodaj
information_schema
doDBEXCLUDE
linii 76 skryptu.źródło
Stwórz użytkownika
Sprawdź uprawnienia
Użyj yor ulubiony edytor do tworzenia pliku
~/.my.cnf
zchmod 400
Utwórz folder dla zrzutów, tak jak w przykładzie
Sprawdź, czy to działa
Opcjonalnie możesz zrobić zrzuty,
daily
aweekly
następnie usunąć wszystkiedaily
starsze niż miesiącźródło