0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

mysqlのdumpファイルが重くて手元の開発環境がimport中に固まってしまったときの対応

Posted at

表題の通り手元の開発環境のdockerのdbにmysqlのdumpファイルをimportしようとしたところ、途中で固まってしまったので対応したときの備忘録です。

方法1. Dockerコンテナのリソースを増やす:

Docker Desktopの設定で、コンテナに割り当てるメモリとCPUの量を増やすことができます。これにより、大きなファイルのインポートがスムーズに行える可能性が高くなります。

とはいえこれには限界があります。
今回は次の方法で解決できました。

方法2. ファイルを分割する:

splitコマンドでダンプファイルを小さな部分に分割し、それぞれを個別にインポートします。

手順1. ダンプファイルを分割:

例えばsplitコマンドを使用してダンプファイルを100MBごとに分割する場合、コマンドラインで次のように打ちます:

$ split -b 100M dump-file.sql part_

このコマンドは、your-dump-file.sqlを100MBごとに分割し、part_aa, part_ab, part_acなどの名前でファイルを生成します。

手順2. 分割ファイルをインポート:

分割された各ファイルを順番にインポートするには、以下のようなスクリプトを使用します:

for file in part_*; do
    cat $file | docker-compose exec -T your-container-name-for-data-base bash -c "mysql -u root -p'yourpassword' name-of-database"
done

このスクリプトは、part_で始まるすべてのファイルを順番に読み込み、MySQLコンテナにインポートします。

これで自分の場合は大きなdumpファイルをimportできました。

*なお、大きなdumpファイルの取り扱い時には細心の注意を払い、必ず最初にバックアップを行うことをおすすめします
*今回紹介したスクリプトではdbのパスワードを直接記述しているので手元の開発環境のみで使える手法になります

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?