mysql - 无法登录部署在k8s集群中的mysql服务器

标签 mysql docker kubernetes

我在 mac-docker-desktop 中使用 k8s。我使用以下配置部署了一个 mysql pod。

运行:kubectl apply -f mysql.yaml

# secret
apiVersion: v1 
kind: Secret
metadata:
  name: mysql
type: Opaque
data:
  # root
  mysql-root-password: cm9vdAo=
---
# configMap
apiVersion: v1
kind: ConfigMap
metadata:
  name: mysql-conf
data:
  database: app
---
apiVersion: apps/v1
kind: Deployment 
metadata:
  name: mysql
  labels:
    app: mysql
spec:
  selector:
    matchLabels:
      app: mysql
  strategy:
    type: RollingUpdate
  template:
    metadata:
      labels:
        app: mysql
    spec:
      volumes:
      - name: mysql
        persistentVolumeClaim:
          claimName: mysql
      containers:
        - image: mysql:5.6
          name: mysql
          env:
            - name: MYSQL_ROOT_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: mysql
                  key: mysql-root-password
            - name: MYSQL_DATABASE
              valueFrom:
                configMapKeyRef:
                  name: mysql-conf
                  key: database
          ports:
            - containerPort: 3306
              name: mysql
          volumeMounts:
            - name: mysql
              mountPath: /var/lib/mysql
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mysql
  labels:
    app: mysql
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
---
# services
apiVersion: v1
kind: Service 
metadata:
  name: mysql
  labels:
    app: mysql
spec:
  selector:
    app: mysql
  ports:
    - port: 3306  
      targetPort: 3306 

在那之后。它显示正常。然后,我想用节点 ip 连接 mysql 服务器,但失败了。然后我在 pod 中执行,但也失败了。

我在pod里执行,登不上去



☁  gogs-k8s  kubectl get pods           
NAME                     READY     STATUS    RESTARTS   AGE
blog-59fb8cbd44-frmtx    1/1       Running   0          37m
blog-59fb8cbd44-gdskp    1/1       Running   0          37m
blog-59fb8cbd44-qrs8f    1/1       Running   0          37m
mysql-6c794ccb7b-dz9f4   1/1       Running   0          31s
☁  gogs-k8s  kubectl exec mysql-6c794ccb7b-dz9f4 -it bash 
root@mysql-6c794ccb7b-dz9f4:/# ls
bin  boot  dev  docker-entrypoint-initdb.d  entrypoint.sh  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@mysql-6c794ccb7b-dz9f4:/# mysql -u root -p 
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
root@mysql-6c794ccb7b-dz9f4:/# echo $MYSQL_ROOT_PASSWORD
root
root@mysql-6c794ccb7b-dz9f4:/# mysql -u root -p 
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

我的配置文件有问题吗?

最佳答案

可能您的 base64 编码密码无效。试试这个:

data:
  pass: cm9vdA==

关于mysql - 无法登录部署在k8s集群中的mysql服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56057231/

相关文章:

mysql - 不能返回 Null,所以我需要替换

mysql - SQL SELECT COUNT GROUP BY - 错误

mysql - SSRS 提示使用 unxtimestamp 处理 mysql 数据库

kubernetes - 在Kubernetes中推出后,是否可以更快地在本地终止容器

kubernetes - 如何列出所有 kubernetes DNS 记录?

mysql - 当列上存在键时,为什么索引不用于 Group by 和/或 Join

docker - 如何在没有sudo的情况下允许Docker权限创建目录?

docker - Flannels 在 Kubernetes 多节点示例中不起作用

file - Docker:容器内npm创建的文件的权限

kubernetes - 如何使用新的 values.yaml 升级 helm chart 并保留以前的部署数据?