Как запросить mysql Kubernetes pod? Доступ запрещен для пользователя ‘root’ @ ‘localhost’

#mysql #kubernetes

#mysql #kubernetes

Вопрос:

Я развернул wordpress и mysql, все работает нормально, я просто хочу знать, как я могу получить доступ к моему mysql из командной строки

 My services
wordpress           LoadBalancer   10.102.29.45     <pending>     80:31262/TCP     39m
wordpress-mysql     ClusterIP      None             <none>        3306/TCP         42m
  

Описать модуль

 kubectl describe pod wordpress-mysql-5fc97c66f7-jx42l
Name:               wordpress-mysql-5fc97c66f7-jx42l
Namespace:          default
Priority:           0
PriorityClassName:  <none>
Node:               minikube/10.0.2.15
Start Time:         Mon, 11 Mar 2019 08:49:19  0100
Labels:             app=wordpress
                    pod-template-hash=5fc97c66f7
                    tier=mysql
Annotations:        <none>
Status:             Running
IP:                 172.17.0.15
Controlled By:      ReplicaSet/wordpress-mysql-5fc97c66f7
Containers:
  mysql:
    Container ID:   docker://dcfe9037ab14c3615aec4000f89f28992c52c40a03581215d921564e5b3bec58
    Image:          mysql:5.6
    Image ID:       docker-pullable://mysql@sha256:36cad5daaae69fbcc15dd33b9f25f35c41bbe7e06cb7df5e14d8b966fb26c1b4
    Port:           3306/TCP
    Host Port:      0/TCP
    State:          Running
      Started:      Mon, 11 Mar 2019 08:50:33  0100
    Ready:          True
  

Есть ли какая-либо аналогия с docker?
Как запросить mysql?

Если я попытаюсь с помощью exec

 kubectl exec -it wordpress-mysql-5fc97c66f7-jx42l -- /bin/bash
root@wordpress-mysql-5fc97c66f7-jx42l:/# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
  

Комментарии:

1. kubectl exec -it wordpress-mysql -- /bin/bash а затем запустите mysql

2. Спасибо, но я получил отказ в доступе на моем собственном компьютере. Почему?

3. Вы создали секретный пароль для MySQL? kubernetes.io/docs/tutorials/stateful-application /…

Ответ №1:

Чтобы устранить проблему, вы должны установить пароль для вашего пользователя MySQL.

Согласно официальной документации, вам необходимо создать секретный объект, содержащий ваш пароль:

 kubectl create secret generic mysql-pass --from-literal=password=YOUR_PASSWORD
  

И обновите спецификацию развертывания следующей частью:

 env:
  - name: MYSQL_ROOT_PASSWORD
    valueFrom:
      secretKeyRef:
        name: mysql-pass
        key: password