Est-ce que mysqldump -all-databases
inclure tous les objets?
Je dois migrer toutes les bases de données vers un nouveau serveur.
Aucun mysqldump -all-databases n'inclut tous les objets
mysqldump --help
-A, --all-databases Dump all the databases. This will be same as --databases
with all databases selected.
Donc mysqldump avec --all-databases ne vide que toutes les bases de données.
Afin de migrer toutes les bases de données vers un nouveau serveur, vous devez effectuer une sauvegarde complète:
mysqldump une instance entière de mysql
mysqldump -h... -u... -p... --events --routines --triggers --all-databases > MySQLData.sql
L'inconvénient est que les sauvegardes créées de cette manière ne peuvent être rechargées que dans la même version majeure de mysql avec laquelle le mysqldump a été généré. En d'autres termes, une base de données mysqldump --all à partir d'une base de données MySQL 5.0 ne peut pas être chargée en 5.1 ou 5.5. La raison ? Le schéma mysql est totalement différent entre les principales versions.
Voici le moyen générique de vider les subventions SQL pour les utilisateurs qui est lisible et plus portable
mysql -h... -u... -p... --skip-column-names -A -e"SELECT CONCAT('SHOW GRANTS FOR ''',user,'''@''',Host,''';') FROM mysql.user WHERE user<>''" | mysql -h... -u... -p... --skip-column-names -A | sed 's/$/;/g' > MySQLGrants.sql
Jetez un œil à la réponse de RolandoMySQLDBA sur Comment puis-je optimiser le mysqldump d'une grande base de données?