こちらの記事でずっと棚上げにしていたMAMPのMySQLのパスワードの変更の仕方です。
phpMyAdminですぐできるかなと思ったら結構はまりました。
まずこちらを参照することをお勧めします! (というかこのサイトの内容で目的を達成できます)
私の場合はよくわからないままrootのパスワード入力し、そのあとに「生成する」を選択してから実行してしまいました。
「生成する」がランダムなパスワードを生成することだとも知らずに。もちろんパスワードのメモなんてとっていません・・・
案の定、MAMPのスタートページを開くを選んでも
Error: Could not connect to MySQL server!
とエラーメッセージが表示され、phpMyAdminを開くことができなくなってしまったのです。
ということで、まさかのMySQLのrootパスワードが完全に不明!になってしまいましたが、以下の手順で復旧できました。
<復旧方法>
まず、こちらのサイトを参照
1.mysqldをkillして
2.「–skip-grant-tables」オプションを指定してmysqldを再起動
3.新しいパスワードを設定
これでいけるはずです。
具体的には以下のようなコマンドを実行しました。
1.mysqldをkillして
2.「–skip-grant-tables」オプションを指定してmysqldを起動
- $ /Applications/MAMP/Library/bin/mysqld –-skip-grant-tables
とやっても起動してくれません - こちらのサイトを参考にしてなんやかんや(ib_logfile0とib_logfile1の削除やlower_case_table_names値の変更)やっていたら同じコマンドですが起動しました。
$ /Applications/MAMP/Library/bin/mysqld --skip-grant-tables &
3.新しいパスワードを設定
- パスワード変更コマンドを実行
$ /Applications/MAMP/Library/bin/mysqladmin -u root password '新パスワード' - 以下のようになんか怒られました。
./mysqladmin:
You cannot use 'password' command as mysqld runs
with grant tables disabled (was started with --skip-grant-tables).
Use: "mysqladmin flush-privileges password '*'" instead - 別の方法で試すことに。以下コマンドを実行。
$ /Applications/MAMP/Library/bin/mysql -u root -h localhost
mysql> update mysql.user set password=password('新パスワード') where user='root';
できた!!無事MAMPのスタートページを開くことができるようになりました。
なお、パスワードをrootから変更する場合は以下注意する必要があります(こちらのサイトを参照しました)。
- MAMPのスタートページが開けなくなるので、
/Applications/MAMP/bin/mamp/index.phpを修正
$link = @mysql_connect(':/Applications/MAMP/tmp/mysql/mysql.sock', 'root', '新パスワード'); - MAMPからMySQLがシャットダウンできなくなるので、
/Applications/MAMP/bin/stopMysql.shを修正
/Applications/MAMP/Library/bin/mysqladmin -u root -p新パスワード --socket=/Applications/MAMP/tmp/mysql/mysql.sock shutdown - phpMyAdminが開けなくなるので、
/Applications/MAMP/bin/phpMyAdmin/config.inc..phpを修正
$cfg['Servers'][$i]['password'] = '新パスワード'; // MySQL password (only needed
おわり(かなり苦戦した。。)