1. TOPTOP
  2. Webサービス
  3. MySQL

Linuxで設定したホスト名(/etc/hosts)とMySQLサーバーのホスト名(localhost)は別もの

|

さて。Webサーバー(Apache)のインストールが
ひと段落したので、次はMySQL5.1(データベースシステム)
のインストールでいきなりけつまずいたネタをおひとつ。

mysql

けつまずいた内容

MySQL5.1をインストールした後に、

一般ユーザーから下記のコマンドで
パスワードの設定をしました。

mysql>set password for root@server=password(‘hoge’);

ところが、コマンドの実行結果は、
Query OKだったにも関わらず、
一旦、exitでmysqlを終了して、再度、

mysql -u root

を実行すると、
“ERROR1045″の表示もなく、
またパスワードの入力を促されず、
素通りでログインできてしまいます。

素通りでログインできでしまうのは
一般ユーザー、rootユーザーともに同じです

mysql -u rootだけでは、ログインできないように
するためにはどうすれば良いでしょうか?

けつまずいた内容の補足

コマンドを以下のようにすると、
こんなエラーが出ます。
(rootでも一般ユーザでも症状は同じ)

#mysql -u root -p
Enterpassword: hoge
ERROR 1045 (20000): Access denied for user ‘root’@’localhost'(using password:YES)

「パスワードはあってるんだけど、
‘root’@’localhost’ではアクセスできないよ!」
と言われているような気が…。

このエラーメッセージででてくる、’localhost’を
最初にパスワード設定した’server’にすれば良いような気がしますが、
そのためにはどうすれば良いでしょうか?

解決方法

MySQLをアンインストールして、もう一度パスワードを設定。
そのときのパスワード設定は、

set password for root@localhost=password(‘hoge’);

とする。どうやら最初に設定した”server”というホスト名が
良くなかったようです。MySQLのパスワード設定のために、
使用するホスト名は、Linuxで設定したホスト名ではなく、
MySQLサーバーで設定したホスト名となるのではないかと推測します。

MySQLサーバーは、特に何か特別の名前を設けたわけではないので、
ホスト名は”localhost”になると考えられます。