
photo credit: jimw
※ 2010/09/02追記
my.cnfのコピー先を間違えていたので修正しました。
MacPortsを使ってインストールしたMySQL5の設定を変更しようとしたのですが、MySQLの設定ファイル「my.cnf」が格納されている場所がすぐには分からなくて手間取りました。
少し調べたら見つかったので、忘れないようにメモしておきます。
設定ファイルのサンプル
MySQL5インストール直後の段階では、my.cnfはどこにも見当たりません。
その代わり、以下に挙げる4種類の設定ファイルのサンプルが「/opt/local/share/mysql5/mysql」ディレクトリに格納されています。
- my-huge.cnf
- my-large.cnf
- my-medium.cnf
- my-my-small.cnf
my.cnfは?
my.cnfは上述の設定ファイルのサンプルを「/opt/local/etc/mysql5」ディレクトリ以下にコピーして作成します。
例えば以下のようなコマンドを実行することでmy.cnfを作成することができます。
$ sudo cp /opt/local/share/mysql5/mysql/my-small.cnf /opt/local/etc/mysql5/my.cnf
まとめ
まとめると、MacPortsでインストールしたMySQL5の設定ファイルmy.cnfの保存場所は以下のようになります。
- /opt/local/etc/mysql5/my.cnf
ディレクトリ階層の深いところにあって少し分かりづらいなぁ、と思ったりもしました。
それでは!
いつも忘れてしまうので、メモ。
以下のコマンドを実行することで、特定のデータベースをバックアップすることができます。バックアップファイル名は何でもいいですが、バックアップ日時がわかるような名前をつけると後々便利かと思います。
$ mysqldump データベース名 -u root -p --opt > バックアップファイル名
次はリストア。以下のコマンドを実行することで、先程作成したバックアップファイルからリストアすることができます。
$ mysql -u root -p データベース名 < バックアップファイル名
頻繁に使わないコマンドはすぐに忘れてしまうなぁ。みなさんはどうやって覚えているんでしょうか?

MacPortsを使ってインストールしたMySQLのrootパスワードを忘れてしまったので(というか設定した覚えがない)、rootパスワードを再設定しました。また忘れてしまった時のために手順をメモしておこうと思います。(当方の環境はSnow Leopard + MySQL 5.1.42。)
なお、今回作業するにあたって以下のページを参考にさせていただきました。ありがとうございます!
まず以下のコマンドを実行し、起動中のMySQLを停止させます。
$ sudo /opt/local/etc/LaunchDaemons/org.macports.mysql5/mysql5.wrapper stop
次に以下のコマンドを実行してMySQLを直接起動させます。「skip-grant-tables」オプションを指定することで、MySQLにパスワードなしでログインしたり、権限の問題で本来ならばアクセスできないデータベースにアクセスすることができるようになるみたいです。なんだか怖いオプションですね。。
$ sudo mysqld_safe5 --user=root --skip-grant-tables
MySQLが起動したら、rootユーザでログインします。パスワードなんていらないぜ!
$ mysql5 -u root
ログインできたら新しいrootパスワードを設定します。念のため「flush privileges;」で権限データのキャッシュをクリアしておきます。
mysql> use mysql
mysql> update user set password=password('新しいパスワード') where user='root';
mysql> flush privileges;
mysql> exit
ログアウトしたらMySQLを再起動します。
$ sudo /opt/local/etc/LaunchDaemons/org.macports.mysql5/mysql5.wrapper restart
最後に以下のコマンドを実行し、新しいパスワードでMySQLにログインすることができたら成功です。
$ mysql5 -u root -p
パスワードがわからなかったときはかなり焦ってしまいましたが、なんとか復帰できました。よかったよかった。