使用Java应用程序从Container Engine连接到Google Cloud SQL

时间:2016-11-11 10:26:48

标签: kubernetes google-cloud-sql gcloud google-kubernetes-engine

我很难从运行在Google容器引擎实例中的Java应用程序连接到云SQL实例。

我将CloudSQL的访问控制中的外部实例IP列入白名单。从我的本地机器连接工作正常,但我还没有设法从我的应用程序建立连接。

我正在将Container配置为(cloud-deployment.yaml):

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: APPNAME
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: APPNAME
    spec:
      imagePullSecrets:
        - name: APPNAME.com
      containers:
        - image: index.docker.io/SOMEUSER/APPNAME:latest
          name: web
          env:
            - name: MYQL_ENV_DB_HOST
              value: 111.111.111.111 # the cloud sql instance ip
            - name: MYQL_ENV_MYSQL_PASSWORD
              value: THEPASSWORD
            - name: MYQL_ENV_MYSQL_USER
              value: THEUSER
          ports:
            - containerPort: 9000
              name: APPNAME

使用连接网址jdbc:mysql://111.111.111.111:3306/databaseName,结果为:

Error while executing: Access denied for user 'root'@'ip adress of the instance' (using password: YES)`

我可以确认在SQL实例上设置了Container Engine外部IP。

我现在不想使用Cloud Proxy Image,因为我还处于开发阶段。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您必须按照此处所述使用云SQL代理:https://github.com/GoogleCloudPlatform/cloudsql-proxy/blob/master/README.md