現在のmysql-clientのバージョン
公式からダウンロードした8.0用のクライアント
$ mysql --version
mysql Ver 8.0.35 for Linux on x86_64 (MySQL Community Server - GPL)
現在のmysql-serverのバージョン
AWSのaurora RDSなので、厳密には違うけど、
エンジンバージョンは5.7を対象にしてます。
mysqldump コマンド
mysqldump --user=[dumpできる権限をもったユーザ] --password=[パスワード] --host=[データベースのURI(ローカルなら不要)] --single-transaction --set-gtid-purged=OFF --default-character-set=binary --routines --add-drop-database --databases [データベース名] | zip > dump.sql.zip
- --set-gtid-purged=OFF
ちょっと前から何故かDumpがうまく行かなくなった。gtidがどうとかいうエラーのために付与…。
細かく調べていないけど をつければOKでした。 - --default-character-set=binary
文字コードが変わったのか、日本語(utf-8)が文字化けするようだったので、binaryで出力。
zip圧縮しながら出力されるので、dump.sql.zip
というものが出来上がります。
zip圧縮している理由は、dumpを取得する場所のディスク容量が逼迫しないようにということです。
unzip dump.sql.zip
解凍すると、-
というファイルが出ます。
(中身はSQLdump)
mvコマンドなどで、名前を変えておくと読みやすいです。
mv - dump.sql.zip
dumpのインポート
手元のコンテナにmysqlコンテナを作成し、インポートします。
mysql -u root -ppassword --default-character-set=binary < dump.sql
これで文字化けせずにbinaryカラムなどもインポートできました。