Migrar despejos do MySQL em instâncias RDS

Migrar

# Piped Import/Export
mysqldump
-h XXXXX.celcywoewbya.XXXXX.rds.amazonaws.com -u XXXXX -pXXXXX DB_NAME | mysql -h XXXXX.celcywoewbya.XXXXX.rds.amazonaws.com -u XXXXX -pXXXXX DB_NAME

Migrar usuários

Isso pode precisar ser executado novamente após os bancos de dados / tabelas serem importados. Isso porque certos usuários podem ter permissões apenas em certos bancos de dados ou mesmo em certas tabelas nos bancos de dados e a criação do usuário falhará a menos que esses bancos de dados / tabelas existam.

# Migrate Users
# Bash function
mygrants
()
{
mysql
-B -N $@ -e "SELECT DISTINCT CONCAT(
'SHOW GRANTS FOR '', user, ''@'', host, '';'

) AS query FROM mysql.user"
|
mysql $@
|
sed
's/(GRANT .*)/1;/;s/^(Grants for .*)/## 1 ##/;/##/{x;p;x;}'
}

# User Dump
mygrants
-h XXXXX.celcywoewbya.XXXXX.rds.amazonaws.com -u XXXXX -pXXXXX mysql

# 1. Execute output of User Dump in SQL Editor
# 2. Run "FLUSH PRIVILEGES"

Migrar sem DEFINER

Se você receber um aviso sobre o DEFINER ou TRIGGERS, poderá remover o DEFINER se necessário. No entanto, é melhor copiar os usuários diretamente usando o mygrantsabaixo.

# Piped Import/Export with DEFINER removed
mysqldump
-h XXXXX.celcywoewbya.XXXXX.rds.amazonaws.com -u XXXXX -pXXXXX DB_NAME | sed -e 's/DEFINER[ ]*=[ ]*[^*]**/*/' | mysql -h XXXXX.celcywoewbya.XXXXX.rds.amazonaws.com -u XXXXX -pXXXXX DB_NAME