MySQLのデータベースのバックアップ
IT
2024-07-21
いろいろやってみたけど結構手間取ったので、メモしておく。
①コマンドプロンプトの起動
②mysqldump -u root -p [データベース名] > dump.sql
③MySQLのパスワード入力
④カレントディレクトリに出力
最初はコマンドプロンプトでmysql -u root -pとやってMySQLを起動してからmysqldumpとやっていたのだけれど、それだと「ERROR 1064 (42000): You have an error in your SQL syntax;」云々と出てきてうまくいかない。
調べてみると、mysqlを起動するとmysqldumpは使えなくなるのだとか。mysqldumpはコマンドプロンプトやshellから直接入力するコマンドで、mysqlの「傘下」にあるものではないらしい。
②は、mysqldump -h localhost -u root -p [データベース名] > dump.sqlでもよいみたい。rootはユーザー名、localhostはホスト名。
カレントディレクトリはcdコマンドで確認。バックアップファイルの名前はもちろん何でもOK。ファイルはテキストエディタ(Visual Codeとか)で参照できる。
逆にデータベースを復元(リストア)するときは、カレントディレクトリにバックアップファイルを置いて、
mysqldump -h localhost -u root -p [データベース名] < dump.sql
でOK。データベースは最初に空のデータベースをつくっておき、そこに復元ファイルからリストアするのだとか。バージョン(MySQL Server 8.0)が変われば直でつくれるようになるかもしれませんが。
拡張子がdumpになるやり方もあって、あれこれ試したのだけど妙にうまくいかなかった。--single-transactionとかいろいろオプションもありますが、まずは基本を押さえることが重要かなと。