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?

【MAMP+マルチドメイン】大きな sql dump ファイルを bigdump で読み込む

Last updated at Posted at 2024-09-14

Bigdump を使った mysql.dump の読み込み

大きな mysql データベースの dump ファイルの読み込みに問題がある場合、例えばタイムアウトなどが起こって読み込めないなど、
その問題に対処したスクリプトとして、BugDump というものを Alexey Ozerov さんが開発・公開されています。ドイツの方かな、感謝。

BigDumpのサイト

今回、開発中の Laravel を使ったプロジェクトのローカルな開発環境(MAMP+マルチドメイン環境)で bigdump にお世話になったのでその使い方のメモを書いておきます。

想定している開発環境

  • XAMPP または MAMP を利用し、かつマルチドメインで複数のサーバの開発を行っている。
  • Laravel フレームワークを利用した Web サーバー開発を行っている。

環境設定

BigDump の説明を読むと、サーバー上で動作する php のスクリプトとして開発されているので、マルチドメインの一つとして BigDump のスクリプトを動くように設定します。

BigDump 用のドメインを準備

フォルダの準備

まずマルチドメインで動作する環境を作るため
htdocs の下に、bigdump というフォルダを作成し、簡単な index.html を準備します。

作成するフォルダ: htdocs/bigdump
作成する index.html

サンプル index.html

<!doctype html>
<html lang="ja">
<head>
  <meta charset="utf-8">
  <title>Bigdump index</title>
</head>
<body>
  <h1>Bigdump index</h1>
  <p>
    <a href="./bigdump.php">bigdump.php</a>
  </p>
</body>
</html>

httpd-vhost.conf の編集

マルチドメインの設定はできているという前提で、XAMPP(MAMP) の httpd-vhost.conf ファイルの編集を行います。

もちろんポート番号や ServerName は環境に合わせてください。

# bigdump
<VirtualHost *:8888>
    DocumentRoot "/Applications/MAMP/htdocs/bigdump"
    ServerName "local.bigdump"
</VirtualHost>

hosts ファイルの編集

Linux 系だと /etc/hosts ファイルの編集。

127.0.0.1       local.bigdump

を追加

マルチドメインでのページアクセスをテスト

http://local.bigdump:8888 にアクセス。

下記のページが出ればoK.

bigdump-001.png

bigdump.php のダウンロード

bigdump.php をダウンロードします。

bigdump-002.png

BigDumpのサイト

ダウンロードした bigdump.phphtdocs/bigdump フォルダの下にコピーします。

bigdump.php ファイルの編集

サーバーの設定部分 (この書面作成時では 38行目以降)

// Database configuration

$db_server   = 'localhost';         //<= MAMP環境では localhost のままでOK
$db_name     = 'xxxxxxxxx';         //<= Laravel で開発中の .env を参照すると良いと思います。
$db_username = 'yyyyyyyyy';         //<= Laravel で開発中の .env を参照すると良いと思います。
$db_password = 'zzzzzzzzz';         //<= Laravel で開発中の .env を参照すると良いと思います。

// Connection charset should be the same as the dump file charset (utf8, latin1, cp1251, koi8r etc.)
// See http://dev.mysql.com/doc/refman/5.0/en/charset-charsets.html for the full list
// Change this if you have problems with non-latin letters

$db_connection_charset = 'utf8mb4';     //<= 日本語を使っているので utf8からマルチバイトの utf8mb4 に変更

もう1箇所、読み込ませる元のデータベースに外部キーがある場合は、以下の設定を有効にしないとエラーが出ます。
(この書面作成時では 78行目)

// $pre_query[]='SET foreign_key_checks = 0';

//コメントを外して、有効にする。

$pre_query[]='SET foreign_key_checks = 0';

動作確認

まず、phpMyAdmin などを利用し、対象のデータベース内の全てのテーブルを削除(drop) しておきます。

ブラウザを利用し、作成した URL にアクセス

bigdump-001.png

bigdump.php の部分をクリック

bigdump-003.png

インポートしたい dump ファイルを読み込ませて、[upload] すると、下記のような画面になります。

bigdump-004.png

この画面で 赤線で示した Start Import を実行するとインポートが始まります。

下記のような画面が出たらインポートは終了です。

bigdump-005.png

アップロードした dump ファイルは /htdocs/bigdump フォルダの下に置かれています。画面から Delete File で消すことも可能でした。

以上、MAMP+マルチドメインで bigdump を利用したメモでした。

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?