MyphpAdminを使わずに大きなデータベースをエクスポートする方法
Bitnami 環境の MySQL で、大きなデータベースをテーブルごとに個別の SQL ファイルとしてエクスポート し、パスワード入力を毎回省略する方法を紹介します。
目次
1. MySQL のパスワード入力を省略する方法
Bitnami 環境では、MySQL に接続するたびにパスワードを求められるため、以下の設定を行うことで省略できます。
手順
設定ファイルを作成
nano ~/.my.cnf
次の内容を入力
[client]
user=your_user
password=your_password
host=localhost
※ YOUR_PASSWORD
を実際の MySQL root パスワードに置き換えてください。
ファイルの権限を変更
chmod 600 ~/.my.cnf
これでセキュリティを確保しつつ、自動ログインが可能になります。
動作確認
MySQL に接続する際、パスワード入力なしでログインできることを確認します。
shCopyEdit/opt/bitnami/mysql/bin/mysql
2. 各テーブルを個別の SQL ファイルとしてエクスポート
データベース全体を 1 つの SQL ファイルとしてエクスポートすると、サイズが大きくなり、phpMyAdmin でインポートできなくなることがあります。そのため、テーブルごとに分割してエクスポートします。
手順
エクスポート用ディレクトリを作成
mkdir -p ~/sql_export cd ~/sql_export
各テーブルを個別にエクスポート
table in $(/opt/bitnami/mysql/bin/mysql -D database_name -e 'SHOW TABLES;' -s --skip-column-names); do /opt/bitnami/mysql/bin/mysqldump database_name "$table" --no-tablespaces > "${table}.sql" done
database_name
→ エクスポートしたいデータベース名に置き換えてください。
--no-tablespaces
を追加することで、PROCESS
権限エラーを回避します。
各テーブルが ~/sql_export/
に .sql
ファイルとして保存されます。
3. エクスポートした SQL ファイルを圧縮(オプション)
大量の SQL ファイルができるため、まとめて圧縮することもできます。
shCopyEdittar -czvf database_backup.tar.gz ~/sql_export
この .tar.gz
ファイルをダウンロードし、ローカル環境や別のサーバーで解凍して利用できます。
[補足] MySQL の復元(インポート)方法
エクスポートした .sql
ファイルを MySQL にインポートするには、次の方法を使います。
個別のテーブルをインポート
shCopyEdit/opt/bitnami/mysql/bin/mysql -D database_name < table_name.sql
すべてのファイルを一括インポート
shCopyEditfor file in ~/sql_export/*.sql; do
/opt/bitnami/mysql/bin/mysql -D database_name < "$file"
done