Access denied for user ‘root’@’localhost’ の対処法

 サイト訪問ありがとうございます!ミツオです。
この記事では、Rails サーバーを立ち上げ、http://localhost:3000/ にアクセスすると次のエラーメッセージが出てしまった時の対処法について説明しています。

Access denied for user 'root'@'localhost' (using password: NO)
Access denied for user 'root'@'localhost' (using password: NO)Please provide the root password for your MySQL installation
Couldn't create database for {"adapter"=>"mysql2", "encoding"=>"utf8", "pool"=>5, "username"=>"root", "password"=>nil, "host"=>"localhost", "database"=>"app_name_development"}

この記事を読めばこのエラーを解決し、Rails サーバーを立ち上げることができます!
Rails サーバーを立ち上げる流れについては次のリンク先をご覧ください!

Rails サーバーをMacPc で起動する初心者にもわかりやすい方法

1. Access denied for user ‘root’@’localhost’

 まずは状況を確認しましょう。
Rails サーバーの起動はうまくいっています。
しかしその後ブラウザでhttp://localhost:3000/ にアクセスするとターミナル上に次のようなエラーメッセージが表示されます。

Access denied for user 'root'@'localhost' (using password: NO)
Access denied for user 'root'@'localhost' (using password: NO)Please provide the root password for your MySQL installation
Couldn't create database for {"adapter"=>"mysql2", "encoding"=>"utf8", "pool"=>5, "username"=>"root", "password"=>nil, "host"=>"localhost", "database"=>"app_name_development"}

これは2行目に対処法が記載されています。
MySQL をインストールした時に決めたパスワードを教えてくれと言っています。

2. Access denied for user ‘root’@’localhost’ の対処法

 パスワードを教えてと言われているので、パスワードを参照しているところにパスワードを打ち込みます。
まずはcontrol とC を同時に押してRails サーバーを停止してください。
そして次のコマンドを入力してください。

$ cd <作業ディレクトリ>/config
$ vi database.yml
default: &default
  adapter: mysql2
  encoding: utf8mb4
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: root
  password: 
  socket: /tmp/mysql.sock

パスワードのところが空欄になっています。
a キーを押して編集モードに入り、矢印キーをpassword: の右側に移動させてください。
入力するパスワードはMySQL をインストールした際に決めたパスワードです。
いつ決めたパスワードか忘れてしまった方は次のリンクから思い出す、もしくはパスワードの変更を行ってください。

MySQL をMac PC にインストールする初心者にもわかりやすい方法

ここで気をつけなければいけないことが1つあります。
それはpassword:と入力するパスワードとの間に1つ半角スペースを入れることです。
そうしなければ次のリンク先で説明しているようなエラーが発生してしまいます。

YAML syntax error occurred の対処法

パスワードを入力できたら、esc キーを押してコマンドモードに戻ってください。
そして、:wq を入力して変更を保存しvi モードを終了してください。

3. Access denied for user ‘root’@’localhost’ が解決しているか確認

 では作業ディレクトリに戻ってrails サーバーを起動し、ブラウザでhttp://localhost:3000/ にアクセスしてください。
1つ上の階層に移動するには次のコマンドを入力します。

cd ..

rails サーバーの起動は次のコマンドです。

rails s

http://localhost:3000/ にブラウザでアクセスして下の画像が表示されたら、Rails サーバーの起動完了です。

まとめ 〜Access denied for user ‘root’@’localhost’解決〜

 エラーは解決しましたか?
Rails のインストールはエラーが頻発して大変だったと思いますが、おつかれさまでした!
後はRails アプリを開発するだけです。
楽しんで開発していきましょう!
最後まで読んでくださってありがとうございました!