CentOS5.3 yumでmysqlをインストールしたらルートでログインできない ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)

CentOS5.3にてyumでmysqlサーバーをインストールしてルートでログインしようとしたらはじかれるという連絡を受けました。

エラーはこれがでるようですね。

[root@server ~]# mysql -u root
[root@server ~]# ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)

一応解決策があったので書いておきます。

[root@server~]# /etc/rc.d/init.d/mysqld stop
[root@server~]# mysqld_safe –skip-grant-tables&
この状態で以下を実行
mysql -u root

ログインできました。
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.86 Source distribution

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

mysqlデータベースを選択
mysql> use mysql;

ユーザーを表示
mysql> select user,host,password from user;
+—————-+———–+——————+
| user | host | password |
+—————-+———–+——————+
| root | localhost | xxxxxxxxxxxxxxxxx|
| root | saases129 | xxxxxxxxxxxxxxxxx|
| root | 127.0.0.1 | xxxxxxxxxxxxxxxxx|
| eccube_db_user | % | xxxxxxxxxxxxxxxxx|
+—————-+———–+——————+
パスワードは伏せましたが、ここにパスワードが設定されていました。

ルートにパスワードは設定されていないとさきほどシステムが言ってたような気がしたのですが。。。

まぁ、とりあえずルートのパスワードを変更したいと思います。
mysql> update user set password=PASSWORD(“xxxxxxxxxx”) where User=’root’;
mysql> flush privileges;
mysql> quit

[root@server~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.0.86 Source distribution

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

これでやっと入れました。
原因は、はっきりしていないのですが、mysqldのセキュリティが厳しくなっているのでしょうか。
構文を見た感じはmysqld_safeのテーブルへの許可をスキップすると書いてある感じなんで。。。。
でも、USING PASSWORD NOなんでパスワードいらないはずですよね。

まぁ、また時間のある時にでも調べようと思います。

ちなみに、CentOS5.3のインストール時にmysqlをいれておくとこの現象はありませんでした。
yumでいれた場合のみですね。

Follow me!