ume

Mysql2::Error::ConnectionError: Access denied for user 'root'@'localhost' (using password: NO)

経緯

rails6でmysqlを使用しrake db:migrateでマイグレーションのファイルをデータベースに反映させようとしました。

エラーの意味.

MySQLに設定しているパスワードと自分のアプリケーションのdatabase.ymlで設定したパスワードが不一致の場合に起きる。

解決策

database.ymlで設定したパスワードが入力されていなかった

default: &default
  adapter: mysql2
  encoding: utf8mb4
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: root
  password: ☆パスワード1☆
  socket: /tmp/mysql.sock

development:
  <<: *default
  database: my_dictionary_development

test:
  <<: *default
  database: my_dictionary_test

production:
  <<: *default
  database: my_dictionary_production
  username: my_dictionary
  password: ☆パスワード2☆

これでデータベース作成できその後マイグレーションもできました。

rails db:create