2012-05-17 3 views
1

제가 작업하는 Rails 앱에서 ActiveRecord에 패치 된 원숭이가 있는데 풀 요청을 제공하기 위해 준비하고 있습니다. 나는 현재 막혀서 MySQL 테스트를 실행하려고 노력 중입니다.MySQL 용으로 Rails ActiveRecord 테스트를 실행합니다. test/config.yml에있는 username은 무시됩니다.

제공된 test/config.yml 파일을 사용 중이며 비밀번호가없는 '레일스'사용자를 만들었습니다. 그때 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' 

어떤 생각 방법이 문제를 해결하기 위해 ...거야?

== 편집은 내가 잘 보이는 ...

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

그것을 실행하려고 있었는지 확인하기 위해 Rakefileputs을 추가하고 있어요. 수동으로 실행하면 같은 오류가 발생합니다. 분명히, --user 옵션은 무시됩니다. mysql --help을 실행했으며 --user이 올바른 옵션으로 전달됩니다.

+0

에로스가 사용자 '와 연결하려고하고 있다고 말하면, 그런 일은 없습니다. –

+0

알아요. 내가 모르는 이유는 config 파일이'username : rails'을 지정할 때 그 사용자로 연결하려고한다고 생각하는 이유입니다. –

+0

다른 사람이 구조에서 오는 지 확인하기 위해 질문을 upvoted했습니다. –

답변

2

나는 지금 그것을 작동시킬 수 있었다.

오류 메시지는 오해의 소지가 있습니다. 실제로 올바른 사용자 이름이 전송되었지만 제대로 만들지 않아 사용자가 존재하지 않아 오류가 발생했습니다.

사용자 이름을 'rails'로 지정하면 연결은 'rails'@'localhost'이되므로 생성해야하는 사용자 이름은 'rails'이 아닌 'rails'@'localhost'입니다. 필자는 오래 전이 사실을 알고 있었지만 지금은 오랫동안 PostgreSQL을 사용해 왔기 때문에 잊어 버렸습니다.

관련 문제