Mysql 为什么在数据库名称中使用数字和下划线时出现`ActiveRecord::NodeDatabaseError:Unknown database`错误?

Mysql 为什么在数据库名称中使用数字和下划线时出现`ActiveRecord::NodeDatabaseError:Unknown database`错误?,mysql,ruby-on-rails,database,rails-activerecord,Mysql,Ruby On Rails,Database,Rails Activerecord,在我的RubyonRails应用程序中,我正在使用ruby-2.2.4、Rails 4.2.5和MySQL 5.7.16以及gemmysql2。我已经创建了名为123_4的数据库,并在/config/database.yml中设置了数据库名称 为什么在尝试rake db:migrate时出现错误ActiveRecord::NoDatabaseError:未知数据库“1234” 如果我尝试运行rakedb:create将创建名为1234的数据库 如果我使用123_abc4作为数据库名称,一切都很好

在我的RubyonRails应用程序中,我正在使用ruby-2.2.4Rails 4.2.5MySQL 5.7.16以及gemmysql2。我已经创建了名为
123_4
的数据库,并在
/config/database.yml
中设置了数据库名称

为什么在尝试rake db:migrate时出现错误
ActiveRecord::NoDatabaseError:未知数据库“1234”

如果我尝试运行
rakedb:create
将创建名为
1234
的数据库

如果我使用
123_abc4
作为数据库名称,一切都很好

我的
数据库.yml
内容:

production: 
   adapter: mysql2 
   database: 123_4 
   host: localhost 
   username: user 
   password: "pass" 
   encoding: utf8
标识符可以以数字开头,但除非引用,否则不能仅由数字组成

因此,您可以使用
123_abc4
,因为它包含字母


如果它只包含数字,您需要引用它:
'123_4'

您可以显示您的数据库吗。yml?添加到问题列表中。这可能是rails中的一个bug吗?开一期怎么样?我不知道是rails还是active record bug。您能在您的环境中复制它吗?@Abhi,谢谢您的链接,但这只是惯例,没有参考MySQL文档。如果您感兴趣,请查看Thanh Huynh的答案谢谢,@ThanhHuynh。你的回答澄清了错误的原因