Problema : stai tentando di importare dati (utilizzando il file mysqldump) nel tuo database mysql, ma sembra che tu non abbia l'autorizzazione per eseguire tale operazione.
Soluzione : supponendo che i dati vengano migrati, seminati e aggiornati nel database mysql, scatta un'istantanea utilizzando mysqldump ed esportala su file
mysqldump -u [username] -p [databaseName]
Dalla documentazione di mysql:
GTID : un identificatore di transazione globale (GTID) è un identificatore univoco creato e associato a ciascuna transazione commessa sul server di origine (master). Questo identificatore è univoco non solo per il server su cui ha avuto origine, ma è univoco su tutti i server in una determinata configurazione di replica. Esiste una mappatura 1 a 1 tra tutte le transazioni e tutti i GTID.
--set-gtid-purged = OFF SET @@ GLOBAL.gtid_purged non viene aggiunto all'output e SET @@ SESSION.sql_log_bin = 0 non viene aggiunto all'output. Per un server in cui i GTID non sono in uso, utilizzare questa opzione o AUTO. Utilizza questa opzione solo per un server in cui sono in uso GTID se sei sicuro che il set GTID richiesto sia già presente in gtid_purged sul server di destinazione e non debba essere modificato, o se prevedi di identificare e aggiungere manualmente eventuali GTID mancanti.
Successivamente connettiti al tuo mysql con l'utente root, concedi i permessi, svuotali e verifica che i tuoi privilegi utente siano stati aggiornati correttamente.
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` |
+
ora ricaricare i dati e l'operazione dovrebbe essere consentita .
mysql -h [host] -u [user] -p[pass] [db_name] < [mysql_dump_name].sql
DEFINER
quando l'utente connesso non dispone delSUPER
privilegio (che di per sé non è consentito in RDS) consentirebbe un'escalation di privilegi arbitraria: i programmi memorizzati vengono eseguiti con le credenziali e i privilegiDEFINER
(al contrario di quelli dell'utente chiamante - loroINVOKER
), per impostazione predefinita. Anche in caso di errore del server .