问题描述
[编辑] 我相信这实际上是 Rubymine 的问题。当我通过 Ubuntu 终端正常运行 RSpec 测试时,它们运行良好。当我使用 Rubymine 内置的测试运行程序时,它会给出错误。我使用的是 Rubymine 2020.3.1。
在我使用 MysqL 的 Rails 6 应用程序中,我可以使用 rails s
在开发模式下完美运行该应用程序,并且 rails console
也可以运行。但是,当我尝试通过 RSpec 运行测试时,出现以下错误
MysqL2::Error::ConnectionError:
Access denied for user 'team'@'localhost' (using password: NO)
尽管在我的 database.yml 文件中我提供了密码:
default: &default
adapter: MysqL2
encoding: utf8mb4
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
username: team
password: <%= ENV['team_db_password'] %>
host: localhost
development:
<<: *default
database: teamassess_development
test:
<<: *default
database: teamassess_test
production:
<<: *default
database: teamassess_production
username: teamassess
password: <%= ENV['TEAMASSESS_DATABASE_PASSWORD'] %>
MysqL 用户对所有数据库拥有完全权限,我可以使用 MysqL -u team -p
登录 MysqL shell,然后输入我的密码。从这里我可以毫无问题地连接到开发和测试数据库。
我还进入了 Rails 控制台并验证了 ENV['team_db_password']
产生了预期值(确实如此),所以我不明白是什么让 Rails 忘记使用密码。
我在 Ubuntu 20.10 上使用 MysqL 8.0.22 版,以及 MysqL gem 0.5.3 版。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)