MySQLで対象のデータベースをバックアップ!そしてリストアの行く末密かに暗示する人Honey!!
MySQLのdump(ダンプ)が出来ないぃぃ!
厳密にいうと、バックアップはできてるけどリストアが出来ない状態!!!!
(俺のいく末密かに暗示する人Honey!!状態)←DxxUMP
先に答えを言うと単なるコマンド間違いでした。。。。泣
手順をメモ。
1)mysqldumpコマンドを使って対象のデータベースのバックアップを取得する。
sampledbが対象のデータベース名、.sqlファイルがバックアップしたファイルになります。適当な名前を付ける。
C:\>mysqldump -u root -p sampledb > C:\\sampledb.sql
- u:ユーザー名を指定するオプション(rootを指定している)
- p:パスワードを指定するオプション(セキュリティ的に明示的な指定をしない。コマンド実行後にパスワードを聞かれるのでそこで入力する)
※mysqlのbinのパスを通していない場合は通しておかないとMySQLのbinディレクトリ上でコマンドを打つはめになるので以下のコマンドを叩いておく。(料理で言うと下準備)
C:\>set PATH=%PATH%;C:\Program Files\MySQL\MySQL Server 5.7\bin
「~%PATH%;hoge」hogeにはMySQLをインストールしたディレクトリ(mysqldump.exeが格納されているディレクトリ)を指定する。
ちなみに↑のコマンドの場合は一時的なもので、コマンドプロンプトを閉じると次回も同じように下準備が必要になる。。。
特別な理由がない場合(男子ごはんに下準備は要らねぇ!という男気溢れる方以外)は素直にこっちを叩きましょう。
C:\>setx /M PATH "%PATH%;C:\Program Files\MySQL\MySQL Server 5.7\bin"
↑で「エラー: レジストリ パスへのアクセスが拒否されました。」が出た人!!(安心してください。私も出ました笑)
コマンドプロンプトを管理者権限で起動するとさっきのコマンドでエラーでなくなります。
2)取得したバックアップをリストアする(バックアップしたデータに戻す※バックアップした時の状態に戻す)
以下のコマンドを叩いて、1)と同じくパスワードを聞かれるので入力してあげる。
C:\>mysql -u root -p sampledb < C:\\sampledb.sql
※この「mysql」をずーーーーーーと「mysqldump」って打っていた。。。。アホや。。。
本当にリストアできたか気になる人は2)をやる前に、データベースを削除してからリストアするとOK。
(元に戻せなくなってしまった!とか削除に関しては責任持ちませんのであしからず。しっかりとバックアップが出来ていて、リストアも出来るのを確かめてから、攻めに行きましょう。)
ただし、このバックアップの取り方は、「create database sample」でデータベースの器を作成しておく必要があるので注意。
※データベースの名前もバックアップしたものと同じにする必要がある。