2012-05-17 19 views
1

我已经在我工作的Rails应用程序中为ActiveRecord打了补丁,而且我正准备提供一个请求。我目前陷入困境,试图让MySql测试运行。Get Rails ActiveRecord测试运行MySQL - test/config.yml中的用户名被忽略

我使用提供的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是正确的选项传递。

+0

那些erros说你正试图与用户连接',这样的事情不存在 –

+0

我知道。我不知道的是为什么它认为我试图以该用户的身份连接,当配置文件指定'用户名:rails' –

+0

upvoted你的问题,看看是否有其他人来救援 –

回答

2

我设法让它现在工作。

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

指定用户名'rails'导致连接为'rails'@'localhost',因此必须创建的用户名是'rails'@'localhost',而不是'rails'。我想很久以前我就知道这一点,但是现在我一直在使用PostgreSQL很久,所以忘记了。

相关问题