mysqlのデータベースのバックアップと復旧

 MySQLには大切なデータがたくさん保存されているので是非これを機会にバックアップと復旧の正しい方法(というか、簡単でわかりやすい方法)を覚えておくとよいです。
 Ubuntu 9.10ではMySQLのデータベースの保存場所は、
  • /var/lib/mysql
です。バックアップを取る場合にはこのディレクトリを丸ごとコピーするのがよいと思います。  cpコマンドやrsyncコマンドを使うとよいです。
保存する際と復旧の際のオーナーとパーミッションは、
  • /var/lib/mysql/ [755] mysql:mysql
  • /var/lib/mysql/<データベース名>/ [700] mysql:mysql
  • /var/lib/mysql/<データベース名>/* [660] mysql:mysql
データベースの設定に関する情報は、
  • /var/lib/mysql/mysql/
に格納されています。特に重要なのは、ユーザー情報として権限やパスワードを保存している
  • /var/lib/mysql/mysql/user.MYD
  • /var/lib/mysql/mysql/user.MYI
  • /var/lib/mysql/mysql/user.frm
です。ここら辺りの設定が保存されています。このファイルはroot権限のみでデータベースのテーブルとして、
mysql> use mysql;
mysql> select * from user;
で見ることができます。

復旧方法

 データベースの復旧の方法は/var/lib/mysqlをそのまま同じディレクトリに移動するだけです。正しいオーナーとパーミッションを与えてください。また/usr/sbin/mysqld restartではどうやらデータベースの読み込みがうまくいかないらしく正しく設定が反映されません。私の環境ではシステムごと再起動するとすべての設定がそのまま反映されました。









プロフィール



  • Name :: 山上オサム ♂(37)
  • Hobby :: 武術
  • Work :: Web Designer