在 docker-compose 上运行:mysqli::real_connect(): (HY000/1045): 用户“root”@“172.26.0.12”访问被拒绝(使用密码:YES)

问题描述 投票:0回答:1

下面的配置在我的本地计算机上运行得很好:

我的

docker-compose.yml
文件:

networks:
    mynet:
        name: mynet
        driver: bridge
services:
    mydb:
        container_name: mydb
        image: mysql:8.4.2
        hostname: mydb
        restart: unless-stopped
        environment:
            MYSQL_ROOT_PASSWORD: ${ROOT_PASSWORD}
            MYSQL_DATABASE: default_db
        networks:
            - mynet
        volumes:
            - ${DATA_VOLUME}:/var/lib/mysql
        ports:
            - ${EXPOSE_PORT}:3306

    myadmin:
        container_name: myadmin
        image: phpmyadmin/phpmyadmin:5.2.1
        hostname: myadmin
        depends_on:
            - mydb
        restart: unless-stopped
        environment:
            PMA_HOST: mydb
            # PMA_PORT: 3306 - I tried with this parameter too
            # PMA_ARBITRARY: 1 - I tried with this parameter too
            # MYSQL_USERNAME: "root" - I tried with this parameter too
            MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
        networks:
            - mynet
        ports:
            - ${PMA_EXPOSE_PORT}:80

这是

.env
文件:

ROOT_PASSWORD=mystrongpwd
DATA_VOLUME=/path/to/my/colume
EXPOSE_PORT=3333
PMA_EXPOSE_PORT=4444

但是当我尝试登录 myadmin 时,出现此错误:

mysqli::real_connect(): (HY000/1045): 用户访问被拒绝 'root'@'172.26.0.12'(使用密码:YES)

更新: 因此,这里有一个问题:启用远程 MySQL 连接:错误 1045 (28000): 用户访问被拒绝,导致该问题被用户关闭。但这不是答案。我找到了答案并将其发布在下面。

mysql docker docker-compose phpmyadmin
1个回答
0
投票
我把这些改成了东西,一切正常:

# in environment section: environment: MYSQL_ROOT_HOST: '%' # the rest of envs # also I had to add this command: command: ["mysqld", "--mysql-native-password=ON"]
我正在使用 

mysql:8.4.2

,似乎使用 
root
 启用密码登录只需要 
["mysqld", "--mysql-native-password=ON"]
 命令。
另外,它对我来说很新,但是不允许从另一个容器登录,除非我添加了 
MYSQL_ROOT_HOST: '%'
 部分。

© www.soinside.com 2019 - 2024. All rights reserved.