【技】mysqlに入れなくなったよぉー(´Д` )

kooです。どもす。
 
MysqlにRootで入れなくなった事象が起きたので、
解消ついでに、ネタ展開。
 
mysql
 
出てきたエラーはこれ
 

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

パスワードの入力をせずに、エラーが出てきてしまいました。
 
あちゃー
 
Rootで入れないってことはやっかいだなぁ(´Д` )
 
とか、困った顔でメッセージ検索すりゃ、
先人の知恵が出てくる出てくる素晴らしい世界。
 
解消方法は、
1.Mysqlを一度止める。
2.権限なし状態で起動して、ログインできるようにする
3.ログインしたら、パスワードを強制変更
4.フラッシュかけて、パスワード反映
5.QuitでMysqlから抜ける。
6.mysqlの通常再起動
 
これを以下の手順でやるだけ。
 

[root@server~]# /etc/rc.d/init.d/mysqld stop
[root@server~]# mysqld_safe –skip-grant-tables &

これで、手順2まで済んでいます。
 
何もでない(コマンドが戻ってこない場合)は、Enter押下です。

なので、

mysql -u root

 
ログインできました。
 

Welcome to the MySQL monitor. Commands end with ; or \g.
Server version: 5.x.xx Source distribution
 
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
 
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective owners.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
mysql>

 
データベースを選択します。

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
 
Database changed

※入力するのは1行目だけ
 

mysql> update user set password=PASSWORD("xxxxxxxxxx") where User='root';

このコマンドで強制変更です。
xxxxxxが新パスワードになります。
 
丸パクリのコピペが出来るように記号なども半角でそのまま使えるようにしてありますが、
パスワードxxxxxxはだめぜすぜ。一瞬で突破されますよ。外からwww
 

んで、最重要なパスワード反映のためのフラッシュ

mysql> flush privileges;

これが無いと、何の意味もありません。
必ず実行してください。
 
では、いったんMysqlから抜けます。

mysql> quit

 

[root@server~]# service mysqld stop
Stopping mysqld: [ OK ]

mysqlを通常モードで起動させるため、一旦サービスを止めます。
 
んで、再起動します。

[root@server~]# service mysqld start
Starting mysqld: [ OK ]

 
はい。ちゃんと起動しました(´・ω・`)
 
あとは、いつも通りログインしてみましょう。
 

[root@server ~]# mysql -u root -p
Enter password:

で、さきほど設定したroot用のパスワードを入力。
 
無事にログインできるはずです。
 

 
ぶっちゃけ、人が触って何かしでかしたサーバってのは、
やっぱり厄介です。
 
それも、何したか 正確な情報が分からない状態ですから。
 
つぅわけで、解消
 
ただ、テーブルがおかしい。 奴さんは何をしでかしたのだ・・・・。
さっぱりわからん。
 
ちなみに、弊社サーバです。
上記の表記は現物ではないですが、この状態になっていたので苦労しました。はい(´Д` )

ツイートツイート

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です