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とかいろいろオプションもありますが、まずは基本を押さえることが重要かなと。