ume

railsにmysql導入時 エラー ActiveRecord::ConnectionNotEstablished (Access denied for user 'root'@'localhost' (using password: NO)):

結論

mysqlで新しいユーザーを作成し、その作成したユーザーに十分な権限を与えconfig/database.yml(データベースと接続する為の設定ファイル)に追加する。

エラーの原因

⇨rootユーザーにアクセスする権限がないことででたエラーである可能性が高いです.
もし(using password: NO)がYESと表示された方はmysqlで設定したパスワードとconfig/database.ymlで記載しているパスワードが違うことによって起こるパスワードの入力ミスの可能性が高いです。

解決までのステップ.

mysqlで好きなユーザーを作成.
②、①で作ったユーザーに権限を与える。 ③config/database.ymlのdefault: &defaultの下のusername:とpassword:を①で作成したuser名とpasswordを入力しました。 ④rails db:createでデータベース作成 ⑤rails s でサーバー立ち上げ

①ユーザー作成.
mysqlログイン後に

 mysql> CREATE USER '好きなユーザー名' IDENTIFIED BY '好きなパスワード';
Query OK, 0 rows affected (0.11 sec)

成功すると上のように表示されます。

SELECT user, host FROM mysql.user;

このコマンドでユーザー登録できているか確認できます。

②権限を与える。

GRANT 権限 ON データベース名.テーブル名 TO 'ユーザー名';

③config/database.ymlにusenameとpassword追記.

④データベース作成.

rails db:create

rails sでサーバー立ち上げる。