2013-06-10 2 views
0

에서 원격 MySQL 서버에 연결할 수 없습니다 내 config/database.yml입니다.내가 실행하면 레일

development: 
    &defaults 
    adapter: mysql2 
    encoding: utf8mb4 
    collation: utf8mb4_unicode_ci 
    pool: 5 
    host: $HOST 
    port: $PORT 
    database: $DATABASE 
    username: root 
    password: $PASSWORD 
    reconnect: true 

내가 뭘 잘못하고 있니?

답변

1

config/database.yml처럼 bash 변수를 사용할 수 없습니다. 여기에 대신

Mysql2::Error: Access denied for user 'root'@'$HOST' (using password: YES)

일이 무엇을보고있는 문자열 "$HOST"$HOST을 취급 레일, 당신은 사용할 수 있습니다 ENV

development: 
    &defaults 
    adapter: mysql2 
    encoding: utf8mb4 
    collation: utf8mb4_unicode_ci 
    pool: 5 
    host: ENV['HOST'] 
    port: ENV['PORT'] 
    database: ENV['DATABASE'] 
    username: root 
    password: ENV['PASSWORD'] 
    reconnect: true 

관련 : http://railsapps.github.io/rails-environment-variables.html

0

로컬 호스트에 레일 응용 프로그램인가?

나는 당신의 명령 줄 것은

mysql -h $HOST -P $PORT -u [email protected] -p 

MySQL의 권한이 원격 호스트에 레일을 실행하지만, 로컬 호스트에 명령 행 테스트를하고있다, 그래서 만약 당신이에서 연결 호스트에 기초로 변환 생각 당신은 매번 다른 요청을하고 있습니다. 예를 들어 [email protected]DROP의 권한을 가져야하지만 [email protected]$REMOTE_HOST은 권한을 가져서는 안됩니다. 귀하의 허가는 [email protected] 만 연결할 수 있지만, [email protected]$HOST은 허용하지 않을 것으로 예상됩니다.

이 경우 root @ $ HOST에 액세스 권한을 추가하는 권한을 변경하여 GRANT

관련 문제