2013-04-05 2 views
2

ec2 서버와 rds 서버가 있습니다. 나는 그래서 난이 오류가 mysqld.sock 파일이없는ec2 서버의 rds에 연결할 수 없습니다. mysql 소켓이 없습니다.

host: myappnameandhash.us-west-2.rds.amazonaws.com 
adapter: mysql2 
encoding: utf8 
reconnect: false 
database: mainDb 
pool: 20 
username: root 
password: xxxx 
socket: /var/run/mysqld/mysqld.sock 
port: 3306 

하지만 내 EC2 서버에 이러한 설정으로 RDS에 연결 와 루비 레일 응용 프로그램 지역 ENV에 나를 위해 일한 :

FATAL: failed to connect to MySQL (error=Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2))

소켓을 설치하려면 무엇이 필요합니까?

갱신

감사 :

나는 소켓의 정의와 포트를 제거했습니다. capistrano를 사용하여 배포합니다. 이제 내 서버에 ssh를 보내고 "현재"폴더로 이동하십시오. 레이크 TS가 : 를 시작하고 난 다음 얻을 : 거기에 내가 실행하려고

rake aborted! Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

하지만 난 더 이상

답변

2

소켓과 포트를 제거 내 database.yml을 파일에 소켓 정의가 없습니다 번호를 database.yml 파일에서 추출한 다음 시도해보십시오.

+1

가 작동하지 않는해야한다 .. :(병이 더 많은 물건과 내 질문에 업데이트 나는 또한 당신이 내 -가 설치되어 있는지 확인합니다. 한 번 –

+1

재시작 인스턴스를 참조 N 시도 인스턴스의 클라이언트 라이브러리 –

1

RDS의 "호스트"를 지정하고 인스턴스가 연결할 수 있도록 RDS의 보안 그룹을 구성해야합니다.

0

저는 이것이 잠시 동안 알고 있었지만 RDS에 연결된 EC2 서버에서이 문제가 발생했습니다. 이 문제를 해결하는 방법을 공유하고 싶습니다.

#In your database.yml 

development: 
    #some configuration 

staging: 
    #some configuration 

production: 
    adapter: mysql2 
    encoding: utf8 
    reconnect: false 
    pool: 20 
    host: url.to.rds.server 
    database: your-database 
    username: your-username 
    password: your-password 

생산에이 레이크 명령을 실행하려면 database.yml을 도움말에서 socketport을 제거

먼저, 당신은 당신의 rails-env, 예를 지정해야 당신이 production 환경을 사용하는 경우, 그것은

여전히
bundle exec rake ts:start RAILS_ENV=production