我已在Google gcloud
容器引擎上部署了我的应用程序。我的申请需要MySQL
。应用程序运行正常并正确连接到MySQL
。
但我想使用MySQL
客户端(MySQL
或命令行)从我的本地计算机连接Workbench
数据库,有人可以帮助我如何将其暴露给本地计算机吗?以及如何在MySQL
shell上打开gcloud
命令行?
我已经运行了以下命令,但外部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
修改
我在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
答案 0 :(得分:13)
尝试kubectl port-forward
命令。
在你的情况下; kubectl port-forward app-mysql-3323704556-nce3w 3306:3306
有关所有可用选项,请参阅The documentation。
答案 1 :(得分:0)
要添加到上述答案中,请在添加-地址0.0.0.0 时,kubectl应该也打开3306到INTERNET的端口(不仅是本地主机)!
kubectl port-forward POD_NAME 3306:3306 --address 0.0.0.0
谨慎使用它,最多只能在开发系统上进行简短的调试会话。我在以下情况下使用它:
答案 2 :(得分:-1)
您需要在MySQL服务器上启用远程访问。请参阅此链接,了解如何在MySQL服务器上启用远程访问:http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html