私はmariadb/mysqlの初心者です。完全にバックアップしたい。
どうやらこれが方法です(私が間違っている場合は修正してください):
mysqldump \
-h... -u... -p... \
--hex-blob --routines --triggers \
--all-databases \
--add-drop-database --add-drop-table \
| gzip > backup.sql.gz
しかし、 この答え によると:
欠点は、この方法で作成されたmysqldumpは、mysqldumpが生成されたものと同じmajotリリースバージョンのmysqlにのみ再ロードできることです。つまり、MySQL 5.0データベースのmysqldumpを5.1または5.5にロードすることはできません。理由 ? mysqlスキーマは、メジャーリリース間で完全に異なります。
それは2011年に書かれました-それはまだ本当ですか?
major Release Candidate General Availability
8.0 2017-09-21 8.0.3 2018-04-19 8.0.11
5.7 2015-04-08 5.7.7 2015-10-21 5.7.9
5.6 2012-09-29 5.6.7 2013-02-05 5.6.10
5.5 2010-09-13 5.5.6 2010-12-03 5.5.8
5.1 2007-09-24 5.1.22 2008-11-14 5.1.30
5.0 2005-09-22 5.0.13
(MariaDBのGA日付がありません。)
別のメジャーバージョンでmysqldump
を使用するにはtryを使用できますが、mayには非互換性があります。
「古い」mysqldumpは「新しい」dbを理解できない場合がありますが、「新しい」mysqldumpが「古い」データを正しく読み取る可能性が高いことに注意してください。
いくつかの注目すべき非互換性:
TYPE --> ENGINE (4.1?)
fractional seconds (new in 5.6.4 / 10.0)
VISIBLE indexes (8.0)
8.0のmysqldumpは、デフォルトを含めることを主張していますが、VISIBLE
の「新しい」オプションです。これにより、8.0のmysqldumpによって取得された(任意のバージョンの)ダンプを移動し、そのダンプをMySQL 8.0以外のMySQL/MariaDBにロードすると、混乱が生じます。
次のようなコメントに気付くでしょう:これにより、(ほとんどの場合)ダンプがどのバージョンでも機能します。
/*!50100 PARTITION BY ... */
つまり、「5.1以降で処理できますが、ターゲットバージョンが5.1より古い場合は、これをコメントとして扱います。」警告:MariaDBの番号付けがMySQLから分岐したため、このコメントのスタイルは何かを台無しにします。
新しいバージョンに移行する必要があるときに、将来的に問題が発生するかどうか尋ねています。その場合は、今日それを考慮に入れて、リンクされた質問で指定されている別のアプローチを使用する必要があります。
それらは常に1つのバージョンからnextメジャーバージョンへのダンプを許可します。アップグレードの主要な方法です。バージョンをスキップするmayしゃっくりが発生しますが、それでもめったに問題が発生することはありません。