14

クラウド SQL プロキシを使用して 2 つの異なるクラウド SQL インスタンスに接続しようとしています...

ドキュメントで、私はそれについての行を見つけましたが、Use -instances parameter. For multiple instances, use a comma-separated list.それをどのように見せるかはわかりません. https://cloud.google.com/sql/docs/sql-proxy . 私は Google コンテナ エンジンを使用しており、単一の CloudSQL インスタンスでうまく機能します。

- name: cloudsql-proxy
  image: b.gcr.io/cloudsql-docker/gce-proxy:1.05
  command: ["/cloud_sql_proxy", "--dir=/cloudsql",
            "-instances=starchup-147119:us-central1:first-db=tcp:3306",
            "-credential_file=/secrets/cloudsql/credentials.json"]
  volumeMounts:
  - name: cloudsql-oauth-credentials
    mountPath: /secrets/cloudsql
    readOnly: true
  - name: ssl-certs
    mountPath: /etc/ssl/certs

-instancesしかし、複数の場合、セクションを次のように試しました:

-instances=starchup-147119:us-central1:first-db,starchup-147119:us-central1:second-db=tcp:3306  
and  
-instances=starchup-147119:us-central1:first-db=tcp:3306,starchup-147119:us-central1:second-db=tcp:3306

しかし、それらはすべてさまざまなエラーを引き起こします。ECONNREFUSED 127.0.0.1:3306ER_DBACCESS_DENIED_ERROR、およびER_ACCESS_DENIED_ERROR

どんな助けでも大歓迎です!

4

2 に答える 2

25

2 つのデータベースを同じ TCP ポートでホストすることはできません。代わりに、コンマ区切りのリストで各データベースのポートを指定します。

-instances=project:region:db=tcp:3306,project:region:db-2=tcp:3307

ここでは 3306 と 3307 を使用しましたが、任意のポートを使用できます。Container Engine 構成の残りの部分で、これらのポート上のノード間の通信が許可されていることを確認してください (デフォルトではそうかもしれませんが、私は GKE を使用していません)。

ほとんどの mysql ドライバーはデフォルトでポート 3306 に接続しますが、別のポートを指定する方法があります。2 番目のデータベース用に選択した別のポートにコードが接続されるように調整する必要があります。

于 2016-11-25T17:01:54.517 に答える