首页 > 解决方案 > Rails 没有从环境变量中读取 mysql 密码

问题描述

当我运行时,我收到了这个错误消息cap production deploy Mysql2::Error::ConnectionError: Access denied for user 'deploy'@'localhost' (using password: NO)

config/database.yml
default: &default
  adapter: mysql2
  encoding: utf8mb4
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  socket: /var/run/mysqld/mysqld.sock
production:
  <<: *default
  database: avocado
  username: deploy
  host: localhost
  password: <%= ENV['AVOCADO_DATABASE_PASSWORD'] %>

这是我的用户和数据库

mysql> SELECT User,Host  FROM mysql.user;
+------------------+-----------+
| User             | Host      |
+------------------+-----------+
| deploy           | %         |
| deploy           | localhost |
+------------------+-----------+
mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| avocado            |
+--------------------+

AVOCADO_DATABASE_PASSWORD在服务器端设置并且不是空字符串。如何修复此错误?

标签: mysqlruby-on-rails-6

解决方案


推荐阅读