今回はPowerShellを使ってWordpressのMySQLデータをリストア(インポート)してみます。
つなぎ先間違えたら消えちゃいます。
バックアップとるなりして万全を期してください。
バックアップの取り方はこちら → WordPress(AWS+Bitnami) – PowerShellでMySQLのバックアップをとる方法
手順
- PowerShellの処理を作る
- 起動用のバッチを作る
- バッチを起動し必要な情報を入力する
注意
この作業を行うとオリジナルのトップページが崩れる場合があります。
ログイン状態だとわからないのですが、キャッシュをクリアしたりログアウトすると崩れる様子が確認できました。
対策はこちら→WordPress(AWS + bitnami) – MySQLをリストアしコピーサイトを作ったら本家が死んだ
PowerShellの処理を作る
ファイル名:mysql-restore.ps1
以下の内容をコピーしてmysql-restore.ps1という名前で保存。
# **** 移行元のサーバー情報 ****
# ユーザーID
$user_name=Read-Host "接続先のユーザーIDを指定してください"
# 接続先情報
$domain=Read-Host "接続先のドメインorIPアドレスを指定してください。"
# 秘密鍵(.pem)ファイルパス(C:\Users以下に配置しないとアクセス権の問題で失敗します) ex."C:\Users\WordpressKeyPair.pem"
$pemfile_path=Read-Host "秘密鍵(.pem)ファイルの保存先を指定してください。C:\Users\の以下に配置されている必要があります"
# バックアップファイルを保存する先 例:"C:\backup\dump.sql.gz"
$backup_path=Read-Host "SQLのdumpファイルの保存先を指定してください。例:C:\backup\dump.sql.gz"
# MySQLのログイン名を指定してください
$mysql_user=Read-Host "MySQLのログイン名を指定してください"
# MySQLのパスワードを指定してください
$mysql_pass=Read-Host "MySQLのパスワードを指定してください"
# ログイン情報の作成
$login_info=$user_name+"@"+$domain
# SCP接続先情報を作成
$dump_tar_path=$login_info+":"+"/tmp/dump.sql.gz"
# SCP接続を使用してデータを取得
scp -i $pemfile_path $backup_path $dump_tar_path
# gzファイルの解凍
ssh -i $pemfile_path $login_info "gzip -d -f /tmp/dump.sql.gz"
# リストアコマンドの作成
"リストア中..."
ssh -i $pemfile_path $login_info "mysql -u $mysql_user -p$mysql_pass -h localhost -D bitnami_wordpress < /tmp/dump.sql"
# 不要ファイルの削除
"不要ファイルの削除..."
ssh -i $pemfile_path $login_info "rm -f /tmp/dump.sql;rm -f /tmp/dump.sql.gz;exit;"
起動用のバッチを作る
ファイル名:mysql-restore.bat
以下の内容をコピーしてバッチファイルを作成する。
powershell -NoProfile -ExecutionPolicy Unrestricted .\mysql-restore.ps1
pause
必要な情報を入力する
以下の順で情報の入力を求めてきます。
事前に調べておきましょう。
- 接続先のユーザーID
- 秘密鍵(.pem)ファイルの保存先
- SQLのdumpファイルのファイルパス
- MySQLのユーザーID
- MySQLのパスワード
接続先のユーザーIDは最近のものであればおそらくbitnami。
.pemファイルはWordpress作成時に保存した秘密鍵ファイル。無くした人はもう手に入りません。
SQLdumpファイルの保存先はbackupした際のdump.sql.gz
MySQLのユーザーIDとパスワードは[WordPress(bitnami) – MySQLのパスワード調べ方]をご参照ください。
ダウンロード
まとめ
くれぐれもオリジナルに上書きすることの無いようにしてください。
おわり
コメントを残す