无法从kubernetes连接到我的本地计算机上的mysql

时间:2020-06-22 05:35:36

标签: mysql kubernetes

您刚刚开始使用Kubernetes。我已经使用Minkikube在Kubernetes上部署了Flask应用程序。我已经在本地计算机上运行MySQL服务器。当我尝试访问数据库时,我会收到错误消息

 InternalError: (pymysql.err.InternalError) (1130, u"Host '157.37.85.26' 
 is not allowed to connect to this MySQL server")
(Background on this error at: http://sqlalche.me/e/2j85)

这里的IP是动态的,每次我尝试访问时。它将使用不同的IP进行连接

这是我的deployment.ymal文件

apiVersion: apps/v1
kind: Deployment
metadata:
  name: flask-deployment
spec:
  selector:
    matchLabels:
      app: flask-crud-app
  replicas: 3
  template:
    metadata:
      labels:
        app: flask-crud-app
    spec:
      containers:
      - name: flask-crud-app
        image: flask-crud-app:latest
        ports:
        - containerPort: 80

还有service.yaml

apiVersion: v1
kind: Service
metadata:
  name: flask-service
spec:
  selector:
    app: flask-crud-app
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80
    nodePort: 31000
  type: NodePort

1 个答案:

答案 0 :(得分:1)

这是因为您当前的配置不允许来自该IP地址的请求。假设您以root用户身份进行连接,那么将有一种解决方法(不推荐),为root用户提供从该IP连接的特权。

连接到您的mysql服务器并执行:

$ mysql -u root -p
$ GRANT ALL PRIVILEGES ON *.* TO 'root'@'my_ip' IDENTIFIED BY 'root_password' WITH GRANT OPTION;
$ FLUSH PRIVILEGES;

建议:设置权限受限的新用户,并允许该用户从给定IP发出请求。