Vivek Singh Rathore
Vivek Singh Rathore

Reputation: 1

Can't connect to mysql on my local machine from kubernetes

Hi just started using Kubernetes. I have deployed my flask application on Kubernetes with minkikube. I have running the MySQL server on my local machine. When I try to access the DB I will get error

 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)

the IP is dynamic here, every time I try to access..it will use different IP to connect

Here is my deployment.ymal file

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

And 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

Upvotes: 0

Views: 710

Answers (1)

Kamol Hasan
Kamol Hasan

Reputation: 13456

It because your current configuration doesn't allow requests coming from that IP address. Say, you're connecting as root user, then a workaround will be(not recommended), giving root user the privilege to connect from that IP.

Connect to your mysql server and perform:

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

Recommendation: Set up a new user with limited privileges and allow requests from the given IP for that user.

Upvotes: 1

Related Questions