Ruby on Railsでアプリ開発を行なっています。
データベースを使いたいのですが、以下のようなエラーメッセージが発生しました。
'reserve_system_development'にアクセスできませんとありますが、アクセスしたいデータベースはreserveというデータベースです。
解決策をご教授願います。
発生している問題・エラーメッセージ
エラーメッセージ
ActiveRecord::ConnectionNotEstablished - Access denied for user 'shachihoko'@'localhost' to database 'reserve_system_development':
該当のソースコード
#database.yml default: &default adapter: mysql2 database: reserve encoding: utf8mb4 pool: 5 username: shachihoko password: "5137sha" host: localhost socket: /tmp/mysql.sock development: <<: *default #database: reserve_system_development test: <<: *default #database: reserve_system_test production: <<: *default #database: reserve_system_production #username: reserve_system #password: <%= ENV['RESERVE_SYSTEM_DATABASE_PASSWORD'] %>
Gemfile
# Ensure the MySQL gem is defined in your Gemfile # gem 'mysql2'
試したこと
これと似たような質問されている方がいらっしゃったので、その方のソースコードを見るとdevelopment~productionの'database:'が無かったので、それらをコメントアウトしました。
・mysqlにログイン
mysql -u shachihoko -p 5137sha
→できました
・DBは存在しているか
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | reserve | +--------------------+
→あります
・userは存在しているか、また権限はあるか
mysql> show grants for shachihoko@localhost; +-----------------------------------------------------------------+ | Grants for shachihoko@localhost | +-----------------------------------------------------------------+ | GRANT USAGE ON *.* TO `shachihoko`@`localhost` | | GRANT ALL PRIVILEGES ON `reserve`.* TO `shachihoko`@`localhost` | +-----------------------------------------------------------------+
→存在しています。権限もあります。
mysql> show tables from reserve; +-------------------+ | Tables_in_reserve | +-------------------+ | reservations | +-------------------+
→テーブルもあります。
mysql> USE reserve;
→データベースも選択しています。
環境
MacOS Big Sur 11.4
MySQL Ver 8.0.23
Ruby on Rails Ver 6.1.3.2
Ruby Ver 2.7.2p137
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/15 03:33