さくらのレンタルサーバーのphpMyAdminで巨大なSQLファイルをインポートできない時
2025/05/09 (金) - 09:00 Server
さくらのレンタルサーバーのスタンダードプラン以上では標準でMySQLが搭載されており、簡単にデータベースを扱えます。それに伴いデータベース管理ツールのphpMyAdminも装備されておりGUIでデータベース操作が行え、外部からSQLのファイルをインポートできます。しかしさくらのレンサバ標準のphpMyAdminでインポートできるファイルの上限は32MBまでのようです。
数百MBあるような巨大なSQLファイルを読み込ませることができません。SQLファイルをdata.sql.zip
のようなファイルの命名規則でzipで圧縮し、32MB以下まで落としてアップもできますが、展開とインポートに時間がかかってタイムアウトすることがあります。そこでどうするか?考えました。
自前でphpMyAdminをインストールする
借りているサーバーに自分でphpMyAdminをインストールし、尚且つphp.ini
などでupload_max_filesize
の値を256MBなどに引き上げて、SQLファイルをアップロードできるようにします。
インポートには時間がかかるので、set_time_limit
で実行時間を引き上げたりmemory_limit
でメモリの上限を上げる必要もあります。ただしあくまで共用のレンタルサーバのためあまり高負荷をかけ続けるとアカウントの利用制限などに抵触する可能性もあるため注意が必要です。
SSHでサーバに接続してSQLファイルをインポートする
一部サーバーコマンドやSQLコマンドの知識が必要ですがこれが一番確実です。予めインポートしたいSQLファイルをレンタルサーバの任意の場所にアップロードしてきます。次にさくらのレンタルサーバにSSHで接続します。ログインパスワードはFTPと同じパスワードです。
ssh ユーザー名@ユーザー名.sakura.ne.jp
ログインしたらMySQLにログインします。予めさくらのレンタルサーバのコントロールパネルよりデータベースとユーザ名を作成しておきます。レンタルサーバーのコントロールパネルからデータベースの収容サーバ名(mysql****.db.sakura.ne.jp
)も控えておきます。パスワードはデータベースを発行したときに設定したデータベースのパスワードです。
mysql -u データベースユーザー名 -h mysql****.db.sakura.ne.jp -p
ログインしたらデータベースを選択します。show databases
でデータベースがあることを確認し、use
コマンドで使用するデータベースを選択します。
show databases;
〜データベース一覧が表示される〜
use 使用するデータベース名;
先ほどアップロードしたSQLファイルをインポートします。データベースの構造にもよりますが、数万レコードあるSQLでも1分もかからず終わるはずです。
source /home/ユーザー名/www/data.sql
インポートが終わると入力待ち状態になるので、MySQLを終了します。
exit;
さきほどレンタルサーバにアップロードしたSQLファイルは不要なので削除しておきます。
rm /home/ユーザー名/www/data.sql
さらにサーバからログアウトします。
exit
この方法のがおそらくインポートを失敗せずに行けると思います。
おしまい♥
おすすめ記事
- AWS CloudFrontで特定ファイルのみキャッシュを無効にする
- macOSでFTPソフトから踏み台経由でサーバーに接続する
- ngnixでドメインのwww有無を統一し、https(SSL)へリダイレクトをする
- AWSのCloudFront入れたらメールフォームが動かなくなったの、なぁぜなぁぜ?
- PHPでURLリライト(rewrite)を使ってみる
トラックバック & ピンバック
- この記事へのトラックバックURI:
- https://weblog.walk-life.me/sakura_rs_phpmyadmin/trackback/