web-dev-qa-db-ja.com

mysqldump -all-databasesはすべてのオブジェクトを含みますか

しますmysqldump -all-databasesすべてのオブジェクトを含めますか?

すべてのデータベースを新しいサーバーに移行する必要があります。

16
Manish Ishwar

Mysqldump -all-databasesにすべてのオブジェクトが含まれていない

mysqldump --help

  -A, --all-databases Dump all the databases. This will be same as --databases
                      with all databases selected.

したがって、mysqldumpに--all-databasesを指定すると、すべてのデータベースのみがダンプされます。

すべてのデータベースを新しいサーバーに移行するには、完全なバックアップを取る必要があります。

mysqlインスタンス全体のmysqldump

mysqldump -h... -u... -p... --events --routines --triggers --all-databases > MySQLData.sql

欠点は、この方法で作成されたバックアップは、mysqldumpが生成されたmysqlの同じメジャーリリースバージョンにのみ再ロードできることです。つまり、MySQL 5.0データベースのmysqldump --all-databasesを5.1または5.5にロードすることはできません。理由 ? mysqlスキーマはメジャーリリース間で完全に異なります。

これは、読みやすく移植性の高いユーザー向けのSQL Grantsをダンプする一般的な方法です

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

大規模なデータベースのmysqldumpを最適化するにはどうすればよいですか RolandoMySQLDBAの回答をご覧ください

21
Abdul Manaf