MySQLのデータベースをmysqlコマンドを使って保存・復元
MySQL
筆者はホームページの作成依頼を受けた際、新規・リニューアルをとあず開発環境を立ち上げてそこで制作をしていきます。
受ける依頼としてWordPressやフルスクラッチのサイトを作ったりしますが、稀にデータベースがすごく大きくなるサイトがありエクスポート・インポートがPHPMyAdminからできなくなる時があります。。。
そんな時はターミナルなどでsshでログインし、コマンドを叩くことで解決できるので方法をご紹介。
スポンサーリンク
目次
SSHでログインする
今回の方法は前提としてSSHにログインする必要があります。
最近のレンタルサーバはsshがデフォルトで使えたりするので有名どころを使っているユーザは問題ないと思いますが、こういう問題が起きるサイトに限って使えないってこともしばしば、、、
そんな方はPHPを使ってSQLデータを保存(ダンプ)することも可能みたいなので、お試し下さい。
保存(ダンプ)方法
sshでログイン後、sqlファイルを保存したいディレクトリまで移動して下さい。
そのディレクトリにログインしたユーザで書き込み権限がないと保存できないので注意して下さい。
移動後、以下のコマンドを入力して実行します。
mysqldump --single-transaction -u DBユーザ名 -p DB名 > 出力先ファイル名
実行後にDBユーザのパスワードを聞かれるので、入力してEnterを押して下さい。
これで保存は完了です。
復元方法
先ほど保存したファイルをftpでアップをして下さい。
アップが完了したら、sshでログインしファイルをアップしたディレクトリまで移動をして下さい。
移動後、以下のコマンドを入力して実行します。
mysql -u ユーザー名 -p データベース名 < dumpファイル名
実行後にDBユーザのパスワードを聞かれるので、入力してEnterを押して下さい。
これで復元は完了です。
ちなみに、、、
今回私が担当したリニューアル案件で、旧サーバのsqlをPHPMyAdminからエクスポートしようとしたらエラーとなったので、上記のコマンドを使ったのですが、エクスポートファイルの容量が5.5GBもありました、、、
リニューアル後はダンプファイルは50MBぐらいに収められたので、どんだけ無駄なことをしていたのか、、、
スポンサーリンク