如何连接在Kubernetes上运行的MySQL

Anc*_*oli 8 google-cloud-platform kubernetes

我已将我的应用程序部署在Google gcloud容器引擎上.我的申请需要MySQL.应用程序运行正常并MySQL正确连接.但是我想MySQL使用MySQLClient(Workbench或命令行)从我的本地机器连接数据库,有人可以帮助我如何将它暴露给本地机器吗?以及如何MySQLgcloudshell 上打开命令行?

我已经运行低于命令,但外部IP不存在:

$ kubectl get deployment
NAME           DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
app-mysql   1         1         1            1           2m
$ kubectl get pods
NAME                            READY     STATUS             RESTARTS   AGE
app-mysql-3323704556-nce3w   1/1       Running            0          2m
$ kubectl get service
NAME           CLUSTER-IP    EXTERNAL-IP       PORT(S)    AGE
app-mysql   11.2.145.79   <none>            3306/TCP   23h
Run Code Online (Sandbox Code Playgroud)

编辑

我正在使用下面的yml文件:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: app-mysql
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: app-mysql
    spec:
      volumes:
      - name: data
        emptyDir: {}
      containers:
      - name: mysql
        image: mysql:5.6.22
        env:
        - name: MYSQL_USER
          value: root
        - name: MYSQL_DATABASE
          value: appdb
        ports:
        - containerPort: 3306
        volumeMounts:
        - name: data
          mountPath: /var/lib/mysql/
---
apiVersion: v1
kind: Service
metadata:
  name: app-mysql
spec:
  selector:
    app: app-mysql
  ports:
  - port: 3306
Run Code Online (Sandbox Code Playgroud)

Tim*_*Tim 18

尝试kubectl port-forward命令.

在你的情况下; kubectl port-forward app-mysql-3323704556-nce3w 3306:3306

有关所有可用选项,请参阅文档.


Rtm*_*tmY 6

涉及 2 个步骤:

1 ) 首先执行从 localhost 到您的 pod 的端口转发:

kubectl port-forward <your-mysql-pod-name> 3306:3306 -n <your-namespace>
Run Code Online (Sandbox Code Playgroud)

2)连接数据库:

mysql -u root -h 127.0.0.1 -p <your-password>
 
Run Code Online (Sandbox Code Playgroud)

请注意,您可能需要更改127.0.0.1localhost- 取决于您的设置。

如果主机设置为:
localhost- 则使用套接字或管道。
127.0.0.1- 然后客户端被迫使用 TCP/IP。

您可以检查您的数据库是否正在侦听 TCP 连接netstat -nlp


阅读更多内容:

无法通过套接字tmp mysql sock连接到本地mysql服务器

无法连接到服务器