エックスサーバー、シックスコアサーバーで大容量のSQlをphpmyadmin以外でインポートする方法
検索するとphp.iniのアップロード設定を変えて、httpdを再起動すると出てくるのですが、rootがないのでhttpdの再起動ができません。
またサポートセンターにメール問い合わせしたところ、
サーバーの仕様上phpmyadminにてインポート可能な上限値が設定されております。
こちらの上限を変更することはできません。そのため、お手数ではございますが、容量の大きなデータベースを
インポートする際には、テーブルごとに小分けにしてインポートを
お試しいただけますでしょうか。
と返ってました。
分割してインポートしないといけないわけです。
もちろん面倒な事はしたくないので、BigDumpというphpスクリプトを利用します。
BigDumpを利用したSQlをphpmyadmin以外でインポートする方法です。
インポートに必要なもの
- sqlデータファイル
- BigDump.php
sqlデータファイルの作り方
sqlデータファイルはphpmyadminからエクスポートするか、WordPressを利用しているサイトだと
backwpupなどのプラグインを使ってエクスポートします。
1.phpmyadminをブラウザで開きます。
2.画面上の「データベース」をクリックし、「エクスポート」をクリックします。
3.エクスポートの対象テーブルが全選択されていること、SQLにチェックがはいっていることを確認します。
4.実行をクリックしてSQLファイルを保存します。
BigDump.php
BigDump.phpを下のリンクのURLからダウンロードします。
BigDump: Staggered MySQL Dump Importer
BigDump.phpを使ってインポート
サーバーにFTP接続し、適当な階層にBigDump.phpとSQLファイルをアップロードします。
BigDump.phpとSQLファイルは同じ階層にアップロードします。
BigDump.phpの編集
43行目あたりにデータベースへ接続するための情報を記入して上書き保存します。
必要な項目は
- MySQLサーバーのホスト名
- データベース名
- データベースを利用できるユーザー名
- データベース接続パスワード
編集後、BigDump.phpをアップロードした階層にブラウザでアクセスします。
ブラウザ上でインポート作業ができるので、作業者のみアクセスできる階層に置くのが望ましいです。
ブラウザからアクセスしたときにデータベースへ接続出来ていない場合には
下の画像のようになります。
データベースへ接続出来きた場合には
下の画像のようになります。
「Start Import」をクリックするとインポートが始まります。
インポート中にブラウザ再読み込みをしてしまうと、再度レコードが追加されてしまうので注意です。
「%bar」のメーターが最大になり、Conguratulationsと表示されてるとインポートが完了します。
mysqlコマンドでのインポート
ここから先は備忘録。
SSHでターミナルからログインできるサーバーの場合、mysqlのコマンドを打つ事で
インポートができます。
sqlファイルがある階層にcdしてからmysqlコマンドを打ちます。
mysql -u ユーザー名 -p データベース名 < sqlfile.sql
ユーザー名: user
データベース名:dbname
sqlファイル名:sqlfile.sql
だった場合
$mysql -u user -p dbname < sqlfile.sql
と打ち込んだあとにデータベースパスワードを入力してインポートが始まります。
■さくらインターネットサーバーの場合
mysql -h mysql●●●.db.sakura.ne.jp -u ユーザー名 -p データベース名 < sqlfile.sql
コメント