Hiromuブログ

最近はこちら(https://zenn.dev/hiromu)が本体

MAMP MySQLのパスワード変更方法

 

こちらの記事でずっと棚上げにしていたMAMPMySQLのパスワードの変更の仕方です。

 

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して

  • MAMPを起動してサーバを起動します。
  • プロセスを確認
    $ ps -ef | grep mysql
  • mysqldのプロセスをkill
    $ kill –9 プロセス番号

 

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

 

おわり(かなり苦戦した。。)