MySQLのパスワードが分からなくなった時の対処方法

phpMyAdminでパスワードを変えてしまって、エラーが出てどうしようもなくなったときなど、MySQLのパスワードが分からなくなってしまった時の対処方法です。

phpMyAdminでパスワードを変えてしまうと、次のようなエラーが出て使えなくなってしまいます。

エラー:MySQLのメッセージ:#1045 – Access denied for user ‘root’@’localhost'(using password:NO)

次の手順で強制的にパスワード変更します。

手順

1. 動作中のMySQLのデーモンプロセスを停止させる

XamppのコントロールパネルでMySQLをStopさせます。(Xamppを使っていない場合は、動作中のプロセス(サービス)を調べて強制的に終了させます。)

2. MySQLデーモンをオプション指定で起動する

$ cd /Applications/XAMPP/xamppfiles/sbin/
$ ./mysqld --skip-grant-tables --user=root &

3. MySQLのコマンドモードに入る

$ ../bin/mysql -u root

4. パスワードを変更する

mysql> use mysql
Database changed
mysql> UPDATE mysql.user SET Password=PASSWORD('newpass') WHERE User='root';
mysql> flush privileges;
mysql> ^D

この例では”newpass”というパスワードに設定しています。

$ cd /Applications/XAMPP/xamppfiles/sbin/
$ ps
  PID TTY           TIME CMD
  344 ttys000    0:00.08 -bash
18826 ttys000    0:00.07 ./mysqld --skip-grant-tables --user=root
$ kill 18826
120124  3:30:45 [Note] ./mysqld: Normal shutdown
120124  3:30:45  InnoDB: Starting shutdown...
120124  3:30:47  InnoDB: Shutdown completed; log sequence number 0 44243
120124  3:30:47 [Note] ./mysqld: Shutdown complete
[1]+  Done                    ./mysqld --skip-grant-tables --user=root

phpMyAdminのMySQLパスワードを設定

ファイル:/Applications/XAMPP/xamppfiles/phpmyadmin/config.inc.php
変更内容:

$cfg['Servers'][$i]['password'] = 'newpass';

WordPressのMySQLパスワードを設定

ファイル:/Applications/XAMPP/xamppfiles/htdocs/wordpress/wp-config.php
変更内容:

/** MySQL データベースのパスワード */
define('DB_PASSWORD', 'newpass');