Mysql2 :: Ошибка :: ConnectionError: Доступ запрещен для пользователя 'rails_user' @ 'localhost' (используя пароль: ДА) - PullRequest
0 голосов
/ 10 марта 2020

Я получаю следующую ошибку при запуске rails db: schema: dump после первоначальной настройки моего проекта Ruby на Rails и проверки настройки схемы для моей базы данных Mysql, которая должна быть пустой с точки зрения На данный момент я создал таблицы:

Mysql2::Error::ConnectionError: Access denied for user 'rails_user'@'localhost' (using password: YES)

Я ввожу mysql -u root -p в командной строке и создаю следующие базы данных:

CREATE DATABASE simple_ex_development;

CREATE DATABASE simple_ex_test;

Теперь вместо использования пользователя root для подключения к моим вновь созданным базам данных (что не является оптимальной практикой безопасности), я определяю нового пользователя, которого приложение rails может использовать для подключения к ним, под названием 'rails_user' следующим образом:

GRANT ALL PRIVILEGES simple_ex_development.* TO 'rails_user'@'localhost' IDENTIFIED BY 'blahpassword'

GRANT ALL PRIVILEGES simple_ex_test.* TO 'rails_user'@'localhost' IDENTIFIED BY 'blahpassword'

Затем я выхожу mysql и go в мой файл config / database.yml приложения rails и обновляю имя пользователя и пароль соответственно:

default: &default
  adapter: mysql2
  encoding: utf8
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: rails_user
  password: blahpassword
  host: localhost

Затем, когда я go вернуться к терминалу и запустить 'rails db: schema: dump'. Я получаю следующую ошибку выше, когда вообще ничего не ожидаю. Я читал другие посты, описывающие стек-потоки, которые касаются подобных проблем и намекают, что это может быть анонимный пользователь.

Почему я получаю это сообщение об ошибке и как я могу его устранить?

Любые указатели здесь были бы хорошими, спасибо!

PS Когда я запускаю rails server I я могу видеть веб-приложение на локальном хосте, но, опять же, я не уверен, правильно ли оно настроено для нового пользователя и пароля, в отличие от root и моего root пароля.

1 Ответ

1 голос
/ 10 марта 2020

Попробуйте создать пользователя до предоставления привилегий:

CREATE USER 'rails_user'@'localhost' IDENTIFIED BY 'blahblahpassword';

И затем предоставьте привилегии таким же образом:

GRANT ALL PRIVILEGES ON simple_ex_development.* TO 'rails_user'@'localhost' IDENTIFIED BY 'blahpassword';

GRANT ALL PRIVILEGES ON simple_ex_test.* TO 'rails_user'@'localhost' IDENTIFIED BY 'blahpassword';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...