Включает ли mysqldump -all-databasesвсе объекты?
Я должен перенести все базы данных на новый сервер.
Включает ли mysqldump -all-databasesвсе объекты?
Я должен перенести все базы данных на новый сервер.
Ответы:
Нет mysqldump -all-database не включает все объекты
mysqldump --help
-A, --all-databases Dump all the databases. This will be same as --databases
with all databases selected.
Так что mysqldump с --all-database только сбрасывает все базы данных.
Чтобы перенести все базы данных на новый сервер, вы должны сделать полную резервную копию:
mysqldump весь экземпляр mysql
mysqldump -h... -u... -p... --events --routines --triggers --all-databases > MySQLData.sql
Недостатком является то, что созданные таким образом резервные копии могут быть перезагружены только в ту же основную версию mysql, с которой был создан mysqldump. Другими словами, базы данных mysqldump --all -all из базы данных MySQL 5.0 не могут быть загружены в 5.1 или 5.5. Причина ? Схема mysql полностью отличается между основными выпусками.
Вот общий способ выгрузки SQL-грантов для пользователей, который удобочитаем и более переносим
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
Посмотрите ответ RolandoMySQLDBA на Как я могу оптимизировать mysqldump для большой базы данных?
--single-transactionне будет создаваться непротиворечивая резервная копия, если во время выполнения резервного копирования будут записаны таблицы MyISAM. Тем не менее, добавление --single-transactionявляется хорошей идеей, если вы используете все InnoDB и хотите избежать блокировки во время выполнения mysqldump.
--eventsкоторые необходимы в дополнение к--routinesи ,--triggersи вы также опущено ,--single-transactionчтобы избежать блокировки таблиц без необходимости.