rancher启动mysql出现Access denied

文章目录

  • rancher部署mysql
  • 出现Access denied
  • 解决办法
    • (一)直接查看
    • (二)麻烦方法
  • 修改root用户密码

rancher部署mysql

rancher部署完成之后,添加集群
集群正常启动后,选择项目
之后选择应用商店,点击启动
然后如下图
所有分类中选择MySQL
点击MySQL
rancher启动mysql出现Access denied_第1张图片
名称,模板版本,命名空间等参数均默认

rancher启动mysql出现Access denied_第2张图片

设置新建数据库,用户名,密码
我设置的
数据库是:test11
用户名:root
密码:123456
rancher启动mysql出现Access denied_第3张图片
选择ClusterIP,启动
rancher启动mysql出现Access denied_第4张图片

出现Access denied

查看容器ID

[root@manager mnt]# docker container ls
CONTAINER ID        IMAGE                                             COMMAND                  CREATED             STATUS              PORTS               NAMES
e3deea5f5b28        4b3b6b994512                                      "docker-entrypoint.s…"   21 seconds ago      Up 21 seconds                           k8s_mysql_mysql-d9f8b5457-ldgb2_mysql_1e1550da-47ac-4a90-a054-78a69b5b5a1b_1

进入容器内部,登陆mysql

[root@manager mnt]# docker exec -it e3deea5f5b28 bash
root@mysql-d9f8b5457-ldgb2:/# mysql -uroot -p
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

解决办法

(一)直接查看

进入容器内部,直接查看环境变量

root@mysql777-6d9b95b685-n5blg:/# echo $MYSQL_PASSWORD
123456
root@mysql777-6d9b95b685-n5blg:/# echo $MYSQL_ROOT_PASSWORD
W1MTNUMfwG   #另一个环境,所以和下边的不一致

(二)麻烦方法

查看服务

[root@manager ~]# kubectl get service -A
NAMESPACE       NAME                   TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                  AGE
......
mysql           mysql                  ClusterIP   10.43.20.25     <none>        3306/TCP                 3m29s

查看secret

[root@manager ~]# kubectl get secret -A
NAMESPACE         NAME                                             TYPE                                  DATA   AGE
......
mysql             mysql                                            Opaque                                2      3m55s

查看对应的yaml文件

[root@manager ~]# kubectl get secret mysql -n mysql -o yaml
apiVersion: v1
data:
  mysql-password: MTIzNDU2
  mysql-root-password: cFVQOEpGQWJDZw==
kind: Secret
metadata:
  creationTimestamp: "2020-04-09T09:59:17Z"
  labels:
    app: mysql
    chart: mysql-1.3.1
    heritage: Tiller
    io.cattle.field/appId: mysql
    release: mysql
  name: mysql
  namespace: mysql
  resourceVersion: "221425"
  selfLink: /api/v1/namespaces/mysql/secrets/mysql
  uid: bcc9b506-1f1b-42f1-89dc-50a3032c5c78
type: Opaque

注意:

这里的密码都经过base64加密了
mysql-password: MTIzNDU2
mysql-root-password: cFVQOEpGQWJDZw==

MySQL服务这里有两个密码,一个是root密码,一个是普通用户密码
我们让root用户使用普通用户的密码登陆肯定是不行的。

解密(一种方法):

[root@manager ~]# echo 'MTIzNDU2' > /opt/1.txt
[root@manager ~]# echo 'cFVQOEpGQWJDZw==' > /opt/2.txt
[root@manager ~]# base64 -d /opt/1.txt 
123456
[root@manager ~]# base64 -d /opt/2.txt 
pUP8JFAbCg   #root用户的密码

再次登陆

root@mysql-d9f8b5457-ldgb2:/# mysql -uroot -p
Enter password:   #pUP8JFAbCg
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 534
Server version: 5.7.14 MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

修改root用户密码

mysql> use mysql
# 以下两条经验证不行
# set password for root@localhost = password('123456');
# update user set password=password('123456') where user='root' and host='localhost'; 
mysql> alter user 'root'@'%' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.00 sec)

再次登陆root用户可用新密码登陆。

你可能感兴趣的:(Rancher)