1

我已经在我工作的 Rails 应用程序中对 ActiveRecord 进行了猴子修补,并且我正试图准备提供一个拉取请求。我目前陷入困境,试图让 MySql 测试运行。

我正在使用提供的 test/config.yml 文件并创建了一个没有密码的“rails”用户。然后当我尝试运行rake mysql:build_databases时,我得到...

ERROR 1044 (42000) at line 1: Access denied for user ''@'localhost' to database 'activerecord_unittest'
ERROR 1044 (42000) at line 1: Access denied for user ''@'localhost' to database 'activerecord_unittest2'

知道如何解决这个问题吗?

== 编辑

我添加了一个putsRakefile查看它试图执行的内容,并得到...

mysql --user=rails -e "create DATABASE activerecord_unittest DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci "

...看起来不错。手动执行,我得到同样的错误。显然, --user 选项被忽略了。我跑了mysql --help,看起来--user是通过的正确选项。

4

1 回答 1

2

我现在已经设法让它工作了。

该错误消息非常具有误导性。实际上,正在发送正确的用户名,但用户不存在,因为我没有正确创建它,导致错误。

将用户名指定为“rails”会导致连接为'rails'@'localhost',因此必须创建的用户名是'rails'@'localhost',而不是'rails'。我想我很久以前就知道这一点,但现在我已经使用 PostgreSQL 工作了很长时间,所以忘记了。

于 2012-05-18T00:22:00.087 回答