前回に引き続きPCネタを。
今回もタイトルの通り、同じようなことで悩んでおられる方の助け舟になれば幸いです。
phpMyAdminのユーザーメニューからユーザーのパスワードを変更した後、
“#1045 MySQL サーバにログインできません”という表示が出てログインができなくなり、
ネットで色々と検索してみましたが、どこが間違っているのかさっぱりわからず、
丸一日、頭を冷やして考えた末、やっと問題を解決することができました。
まずは、どこが間違っているのか検証するため、コマンドプロンプトから
変更したパスワードを入力してMySQLへログインしてみます。
Windows VISTA以降のOSの場合、インストールされたディレクトリの上で
shiftキー + 右クリックでコマンドプロンプトを開くことができます。
そうすると右のように表示され、入力を省くことが可能です。「C:\xampp\mysql\bin」
それ以前のOSの場合はインストールされているディレクトリを入力してください。
続いて、mysql -h localhost -u root と入力してenterキーを押してください。
この時点で接続できてしまう場合は、パスワードが変更されていません。
この状態ではセキュリティーの問題がありますので、
phpMyAdminのユーザーメニューからユーザーのパスワードを変更を行ってください。
パスワードの変更が行われていれば、コマンドプロンプトに
ERROR 1045...などの表示が出て、再度ディレクトリの表示が自動で入力されます。
では次にmysql -h localhost -u root -p と入力してenterキーを押してください。
すると、Enter password: と表示されますので、変更登録したパスワードを入力、
enterキーを押してください。
Welcome to the MySQL monitor.などの表示が出れば接続成功で、
パスワードは正しく変更されていることがわかります。
これでパスワードが間違っていないことが分かったわけですが、
だとしたら何が間違っているのだろう???
そこで、また色々と調べてみたわけですが、
どうやらパスワードの変更後、config.inc.phpを修正しなければならないようです。
まずは適当なテキストエディタでconfig.inc.phpを開きます。
以下の赤い文字の部分がどうなっているのか?これが問題でした・・・。
/* Authentication type and info */
$cfg['Servers'][$i]['auth_type'] = 'cookie'; // Authentication method (config, http or cookie based)
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '****';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['AllowNoPassword'] = true;
$cfg['Lang'] = '';
自分の場合、パスワードを変更した後、これを開いて変更していたのですが、
勘違いをして自分のユーザー名を入力していたようです・・・。
コマンドプロンプトでは「-u root」と入力していたというのに、情けない・・・。
ユーザー名をroot、パスワードを変更したものを入力して保存、
phpMyAdminにアクセスしてユーザー名をrootと記入してパスワードを入力すると
無事にログインすることができました。
ユーザー名はあくまでもrootなんですね。
ネットで検索しても、ここまで解説しているものが見つけられず、
随分と遠回りしてしまいました。
場合によっては他の問題でログインできない可能性もありますが、
大抵の場合はここが変更されていないのが原因と考えられます。