微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQLAlchemy无法连接到Kubernetes中localhost上的Mysql服务器

如何解决SQLAlchemy无法连接到Kubernetes中localhost上的Mysql服务器

我在Kubernetes中部署了MysqL服务,并创建了一个具有所有特权的数据库(db1)和一个自定义用户(由'bar'标识的'foo'@'localhost')。我可以验证。

但是我的Flask应用程序无法以某种方式连接到它。所以,我打开了调试模式,并得到了

sqlalchemy.exc.OperationalError
sqlalchemy.exc.OperationalError: (pyMysqL.err.OperationalError) (2003,"Can't connect to MysqL server on 'localhost' ([Errno 99] Address not available)")
(Background on this error at: http://sqlalche.me/e/13/e3q8)

这在Linux机器上永远不会发生。这是我的DATABASE_URL MysqL+pyMysqL://foo:bar@localhost:3306/db1 我做错了什么吗?我是kubernetes的新手,我什至不知道如何调试它。如果我没有提供足够的信息,请通知我。

谢谢。


[编辑]

MysqL-deployment.yaml

apiVersion: apps/v1
kind: Deployment
Metadata:
    name: MysqL
    labels:
        app: MysqL
spec:
    replicas: 1
    selector:
        matchLabels:
            app: MysqL
    template:
        Metadata:
            labels:
                app: MysqL
        spec:
            containers:
                - image: MysqL:5.6
                  name: MysqL
                  env:
                    - name: MysqL_ROOT_PASSWORD
                      value: "123"
                  ports:
                    - containerPort: 3306
                      name: MysqL
                  volumeMounts:
                    - name: MysqL-persistent-storage
                      mountPath: /var/lib/MysqL
            volumes:
                - name: MysqL-persistent-storage
                  persistentVolumeClaim:
                    claimName: MysqL-volumeclaim

MysqL-service.yaml

apiVersion: v1
kind: Service
Metadata:
    name: MysqL
    labels:
        app: MysqL
spec:
    type: ClusterIP
    ports:
        - port: 3306
    selector:
        app: MysqL

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。