Mysql2 :: Ошибка «Доступ запрещен для пользователя» с использованием переменной env в database.yml - PullRequest
0 голосов
/ 28 мая 2019

Моя система - macOX Mojave 10.14
MySQL - это MySQL: 8.0.16
My database.yml - это:

development:
  adapter: mysql2
  encoding: utf8
  database: dev_database
  reconnect: false
  pool: 5
  username: <%= ENV['RAILS_DEV_DB_USSERNAME'] %>
  password: <%= ENV['RAILS_DEV_DB_PASSWORD'] %>
  socket: /tmp/mysql.sock

, и я подтвердил, допустима ли переменная.Используя

Командная строка: erb config / database.yml

Я могу получить:

development:
  adapter: mysql2
  encoding: utf8
  database: dev_database
  reconnect: false
  pool: 5
  username: root
  password: Wle3S#23sv
  socket: /tmp/mysql.sock

Но когда я запускаю rails s -e developent,и перейдите на мою страницу, я не могу подключиться к своей базе данных.

enter image description here

Что я могу сделать сейчас?

1 Ответ

0 голосов
/ 28 мая 2019

Как предложил автор arpiagar rails 3, как использовать конфигурационные переменные ENV в файле Settings.yml? проверить его пример (26)

когда вы вводите тег скриптлета в файл .yml, это скорее шаблон erb. Поэтому сначала прочтите его как шаблон erb, а затем загрузите yml

Вы можете использовать dotenv или figaro gems (по методологии приложения из двенадцати факторов) для загрузки переменных среды.

Например, если вы используете камень dotenv

By default, load will look for a file called .env in the current working directory. Pass in multiple files and they will be loaded in order. The first value set for a variable will win.

require 'dotenv'
Dotenv.load('file1.env', 'file2.env')
HOSTNAME = ENV['HOSTNAME']

Подробнее смотрите ниже по ссылкам

  1. http://railsapps.github.io/rails-environment-variables.html

  2. https://www.honeybadger.io/blog/ruby-guide-environment-variables/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...