エラー:Access denied for user ‘root’@’localhost’ (using password: NO)
rails sを利用していたら、上記のエラーが表示されました。
その対処方法を載せます。
問題の把握
「 PW(パスワード)がないから、開ねえぞおお 」とお叱りを受けています
改善策
- credentials.ymlの環境変数でPWを設定する。個人だけならこれでOKだが、チーム開発などで共有するとチームメンバーごとにローカルPWが違うはずなので、自分以外はエラーが発生する。チームメンバーでPWを共通化する必要があるので、面倒。
- rootのPW設定をなくす。この方法であれば、PWがなくても利用が可能
今回は後者の方法で
rootユーザーのPW設定をなくして簡単にrails sを利用できるようにしていく。
操作方法
MySQLの停止
$ mysql.server stop
MySQLにログイン
ターミナル
$ mysql -uroot -p
Enter password: #現在のPWを入力
PWを空(’’)に設定する
mysql> use mysql
mysql> update user set password='' where User='root';
mysql> flush privileges;
MySQLの起動
$ mysql.server start
ローカルサーバーの再起動
ターミナル
# rubyの場合
$ rails s
#php
$ php artisan serve
これで改善します。