Problem : Próbujesz zaimportować dane (używając pliku mysqldump) do bazy danych mysql, ale wygląda na to, że nie masz uprawnień do wykonania tej operacji.
Rozwiązanie : Zakładając, że dane są migrowane, wysyłane i aktualizowane w bazie danych mysql, zrób migawkę za pomocą mysqldump i wyeksportuj ją do pliku
mysqldump -u [username] -p [databaseName]
Z dokumentacji mysql:
GTID - globalny identyfikator transakcji (GTID) to unikalny identyfikator utworzony i powiązany z każdą transakcją popełnioną na serwerze pochodzenia (głównym). Ten identyfikator jest unikalny nie tylko dla serwera, z którego pochodzi, ale jest unikalny dla wszystkich serwerów w danej konfiguracji replikacji. Istnieje mapowanie 1 do 1 między wszystkimi transakcjami i wszystkimi identyfikatorami GTID.
--set-gtid- purged = OFF SET @@ GLOBAL.gtid_purged nie jest dodawane do wyjścia, a SET @@ SESSION.sql_log_bin = 0 nie jest dodawane do wyjścia. W przypadku serwera, na którym nie są używane identyfikatory GTID, użyj tej opcji lub AUTO. Użyj tej opcji tylko dla serwera, na którym używane są identyfikatory GTID, jeśli masz pewność, że wymagany zestaw GTID jest już obecny w gtid_purged na serwerze docelowym i nie powinien być zmieniany lub jeśli planujesz ręcznie zidentyfikować i dodać brakujące GTID.
Następnie połącz się z mysql za pomocą użytkownika root, nadaj uprawnienia, opróżnij je i sprawdź, czy uprawnienia użytkownika zostały poprawnie zaktualizowane.
mysql -u root -p
UPDATE mysql.user SET Super_Priv='Y' WHERE user='johnDoe' AND host='%';
FLUSH PRIVILEGES;
mysql> SHOW GRANTS FOR 'johnDoe';
+
| Grants for johnDoe |
+
| GRANT USAGE ON *.* TO `johnDoe` |
| GRANT ALL PRIVILEGES ON `db1`.* TO `johnDoe` |
+
teraz przeładuj dane i operacja powinna być dozwolona .
mysql -h [host] -u [user] -p[pass] [db_name] < [mysql_dump_name].sql
DEFINER
gdy zalogowany użytkownik nie maSUPER
uprawnienia (co samo w sobie jest niedozwolone w RDS), umożliwiłoby dowolną eskalację uprawnień - zapisane programy działają z poświadczeniami i uprawnieniami ichDEFINER
(w przeciwieństwie do użytkownika dzwoniącego - ichINVOKER
), domyślnie. Również w przypadku awarii serwera .