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

我正在尝试为 mysql 和 phpmyadmin 使用 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 退出

【问题讨论】:

    标签: mysql docker phpmyadmin docker-compose


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-09
      • 2016-12-09
      • 1970-01-01
      • 2020-11-23
      • 1970-01-01
      相关资源
      最近更新 更多