Rails нет имени базы данных в соединении - PullRequest
0 голосов
/ 30 ноября 2018

Попытка запустить приложение rails в prod на Ubuntu 16.04 и установить mysql Ver 14.14 Distrib 5.7.24, Ruby 2.5.3 и использовать гем mysql2.Он отлично работает на моем Mac 10.13.Мое приложение Rails не может прочитать имя БД в Ubuntu.

Не удается найти имя БД: {:adapter=>"mysql2", :encoding=>"utf8", :database=>nil, :username=>"myUser", :password=>"secret", :host=>"127.0.0.1", :port=>3306}

Затем добавляет 127.0.0.1 в качестве имени БД: {:adapter=>"mysql2", :encoding=>"utf8", :database=>"127.0.0.1", :username=>"myUser", :password=>"secret", :host=>"127.0.0.1", :port=>3306}

Мой database.yml

production: adapter: mysql2 encoding: utf8 database: mydb username: myUser password: secret host: 127.0.0.1 port: 3306

Я выдернул причину, почему не могу подключиться к БД на моем сервере Ubuntu.Я могу войти в MySQL через CLI в порядке с пользователем БД в порядке.

Я также вижу ту же проблему на коробке Ubuntu с Vagrant, так что это согласуется.

Любая помощь очень благодарнав настоящее время.

Понятия не имею, но перевод в этот формат работает.Я пробовал все остальное, другое имя БД и т.д. безрезультатно:

production: url: mysql2://user:pass@localhost/myDb

Спасибо за ваши ответы.

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018
  1. Прежде чем ваше приложение Rails сможет подключиться к серверу MySQL, вам необходимо установить адаптер MySQL.Драгоценный камень mysql2 обеспечивает эту функциональность.Как пользователь Rails, установите гем mysql2, например:
    gem install mysql2 
    
  2. Если у вас есть файл config / database.yml , сохраните изменения файла следующим образом: (или создайте новый файл)
    development:
     adapter: mysql2
     encoding: utf8
     database: my_db_name
     username: root
     password: my_password
     host: 127.0.0.1
     port: 3306
    
  3. Создайте базу данных разработки вашего приложения с помощью этой команды rake:
    rake db:create
    

Внесите изменения, выполнив следующие действия. Это, безусловно, будет работать в режиме разработки.

0 голосов
/ 30 ноября 2018

Ваш файл database.yml должен выглядеть примерно так:

development:
  adapter:  mysql2
  encoding: unicode
  pool: 5
  username: mysql_user
  password: your_password
  host:     localhost_or_your_host
  database: db_name

Измените свою среду в соответствии со своими требованиями.Это будет работать для вашего режима разработки.

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