2016-09-06 1 views
0

유연한 앱 엔진에서 Ruby를 사용하고 있습니다. 동일한 프로젝트에서 두 대의 클라우드 SQL 서버에 연결해야합니다. localhost를 통해 연결뿐만 아니라 database.yml 내에서 소켓을 직접 지정하려고 시도했으며 내 클라우드 SQL 인스턴스의 IPv4 주소도 아무 것도 작동하지 않는 것 같습니다. StackOverflow에서이 질문에 대한 비슷한 스레드를 모두 봤는데 아무것도 작동하지 않습니다. 나는 서비스 계정을 사용하려고 시도 하겠지만, 루비로이 예제를 찾을 수는 없다.은 유연한 앱 엔진에서 Ruby의 Google Cloud SQL 2 세대에 연결할 수 없습니다.

가장 가까이에 올 수있는 것은 #<Mysql2::Error: Lost connection to MySQL server at 'reading initial communication packet', system error: 0>입니다. 제발 조언.

+0

는 당신이 어딘가에 코드를 게재 할 수 있습니까? http://stackoverflow.com/help/mcve – Herman

답변

1

이것은 이상적이지 않지만 다른 곳에서 찾을 수있는 것부터 현재 유연한 응용 프로그램 환경에서 Gen 2 클라우드 SQL 서버에 연결하는 유일한 지원 방법은 다음과 같습니다. 나는 이것을 할 수있는 모든 대답을 받아 들일 것이다. 그러나 들어오는 모든 연결을 IP리스트에 화이트리스트 할 필요는 없다. 로컬 호스트를 통해이 작업을 수행하는 것이 바람직하지만, 내가 모은 작업에서이 작업이 아직 이루어지지 않았습니다.

  1. 안 비 SSL 연결 및 클라우드 SQL 생성이 서버 enter image description here
  2. 에 대한 SSL 인증서 번들을 다운로드하여 클라우드 SQL 서버 enter image description here
  3. 에 들어오는 모든 IPv4 주소는의 루트 암호를 설정 허용하여 클라우드 SQL 서버 (아직 SSL 인증서 번들을 사용하고 있으므로 기술적으로 불필요 함)
  4. Cloud SQL 서버의 IPv4 주소와 루트 암호를 복사하십시오.
  5. 는 아래와 같이 직접 database.yml 파일에 IP와 비밀번호를 붙여 다음과 같은 설정, 인증서 번들을 포함

    # config/database.yml 
    
    production: 
        adapter: mysql2 
        encoding: utf8 
        pool: 5 
        host: <IP ADDRESS HERE> 
        database: <DATABASE NAME HERE> 
        username: root 
        password: <PASSWORD HERE> 
        sslca: config/ssl/server-ca.pem 
        sslcert: config/ssl/client-cert.pem 
        sslkey: config/ssl/client-key.pem 
    
관련 문제