使用 phpmyadmin 和 docker-compose 的身份验证错误

Posted

技术标签:

【中文标题】使用 phpmyadmin 和 docker-compose 的身份验证错误【英文标题】:Authentication error using phpmyadmin and docker-compose 【发布时间】:2019-09-26 00:26:51 【问题描述】:

我正在尝试为 mysqlphpmyadmin 使用 docker-compose,但在尝试登录 phpmyadmin 时遇到身份验证错误。

我在 yaml 文件上尝试了几种配置,但都没有成功。

version: '3'

services:

  db:
    image: mysql
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    environment:
      MYSQL_DATABASE: mydb
      MYSQL_USER: root
      MYSQL_PASSWORD: admin
      MYSQL_ROOT_PASSWORD: admin
    volumes:
      - my-db:/var/lib/mysql

  phpmyadmin:
    image: phpmyadmin/phpmyadmin:latest
    links:
      - db
    ports:
      - 8080:80
    restart: always
    environment:
      PMA_USER: root
      PMA_PASSWORD: admin

    volumes:
      my-db: 

当我尝试登录 phpmyadmin 时,我收到以下错误:

mysqli_real_connect():服务器请求客户端未知的身份验证方法[caching_sha2_password] mysqli_real_connect(): (HY000/2054): 服务器请求客户端未知的身份验证方法

我尝试将 yml 更改为:

version: '3'

  services:

    db:
      image: mysql:57
      restart: always
      environment:

此后,容器不再启动,并给出以下消息:

docker_db_1 以代码 1 退出

【问题讨论】:

【参考方案1】:

这很好用:

version: '3'

services:

  db:
    image: mysql:5.7
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    environment:
      MYSQL_DATABASE: mydb
      MYSQL_USER: root
      MYSQL_PASSWORD: admin
      MYSQL_ROOT_PASSWORD: admin
    volumes:
      - my-db:/var/lib/mysql

  phpmyadmin:
          image: phpmyadmin/phpmyadmin:latest
          links:
            - db
          ports:
            - 8080:80
          restart: always
          environment:
              PMA_USER: root
              PMA_PASSWORD: admin

volumes:
  my-db: 

记得在运行前删除卷(以防遇到问题)。

【讨论】:

成功了。我删除了音量并使用了您的示例并且工作正常。【参考方案2】:

我只是在 docker-compose.yml 中复制了这段代码

version: '3'

services:

  db:
    image: mysql
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    environment:
      MYSQL_DATABASE: mydb
      MYSQL_USER: root
      MYSQL_PASSWORD: admin
      MYSQL_ROOT_PASSWORD: admin
    volumes:
      - my-db:/var/lib/mysql

  phpmyadmin:
          image: phpmyadmin/phpmyadmin:latest
          links:
            - db
          ports:
            - 8080:80
          restart: always
          environment:
              PMA_USER: root
              PMA_PASSWORD: admin

volumes:
  my-db: 

并运行命令docker stack deploy -c docker-compose.yml mysqllab

这是结果

enter image description here

【讨论】:

以上是关于使用 phpmyadmin 和 docker-compose 的身份验证错误的主要内容,如果未能解决你的问题,请参考以下文章

使用 phpMyAdmin 同步 MySQL 远程和本地数据库

使用 phpmyadmin 和 docker-compose 的身份验证错误

Dgraph安装以及使用1

phpmyadmin该怎么使用呀? 我的linux系统是kali,已经装了Apache.和phpm

如何设置phpmyadmin的用户名和密码[关闭]

访问phpmyadmin页面空白处理方法?