Rails连接中没有数据库名称

时间:2018-11-30 05:26:45

标签: mysql ruby-on-rails

尝试在Ubuntu 16.04上的产品中运行Rails应用,并安装了MySQL Ver 14.14 Distrib 5.7.24,Ruby 2.5.3,并使用mysql2 gem。在我的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}

我的数据库.yml

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

我一直在努力解释为什么我无法连接到Ubuntu服务器中的数据库。我可以通过CLI正常使用数据库用户来登录mysql。

在带有Vagrant的Ubuntu盒子上,我也看到了相同的问题,因此很一致。

这时任何帮助都是非常感激的。

我不知道,但是以这种格式进行工作。我尝试了其他所有操作,不同的数据库名称等,但无济于事:

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

感谢您的回复。

2 个答案:

答案 0 :(得分:0)

您的database.yml应该看起来像这样:

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

请根据您的要求更改环境。这将适用于您的开发模式。

答案 1 :(得分:0)

  1. 在Rails应用程序可以连接到MySQL服务器之前,您需要安装MySQL适配器。 mysql2 gem提供了此功能。以Rails用户身份,安装mysql2 gem,如下所示:
    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
    

请按照以下步骤进行更改。这肯定会在您的开发模式下起作用。