Can';部署kubernetes后,无法访问mysql根用户或用户

Can';部署kubernetes后,无法访问mysql根用户或用户,mysql,kubernetes,Mysql,Kubernetes,我有一个作为服务运行的nodejs应用程序,它需要访问作为另一个服务运行的mysql数据库(相同的命名空间) 我还有一个mysql文件,我将把它导入数据库 以下是我的工作流程: 设置一个包含根密码和新数据库凭据(db\u名称、db\u用户、db\u密码)的密码 使用SQL脚本设置ConfigMap以创建数据库结构 最后,使用pv/pvc部署mysql,下面是yaml文件内容: 因为我的nodejs应用程序不访问数据库,所以我想验证是否已经创建了新的数据库并导入了sql文件,运行kubect

我有一个作为服务运行的nodejs应用程序,它需要访问作为另一个服务运行的mysql数据库(相同的命名空间)

我还有一个mysql文件,我将把它导入数据库

以下是我的工作流程:

  • 设置一个包含根密码和新数据库凭据(db\u名称、db\u用户、db\u密码)的密码

  • 使用SQL脚本设置ConfigMap以创建数据库结构

  • 最后,使用pv/pvc部署mysql,下面是yaml文件内容:

  • 因为我的nodejs应用程序不访问数据库,所以我想验证是否已经创建了新的数据库并导入了sql文件,运行
    kubectl exec
    ,然后运行
    mysql-u root-p
    会给我带来以下错误:

    ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
    
    在pod中,运行
    echo$MYSQL\u ROOT\u PASSWORD
    或任何其他env变量返回正确的值


    我做错了什么?

    通过编辑以下行解决了问题:
    mountPath:/var/lib/mysql


    我将其更改为
    /mnt/data
    ,部署工作非常顺利。

    主机路径卷不是特别可靠的存储:如果pod在另一个节点上重新调度,它将丢失其存储,并且如果该主机目录中已经有数据(包括配置的用户和凭据)这就是数据库将使用的内容。我会选择不同的存储类型,或者让集群内provisioner自己创建PersistentVolume对象。@DavidMaze:我怀疑这与问题有关,但是我想了解更多关于这个问题的信息,如果您有任何文档链接,我将不胜感激。
    ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)