mysql 错误代码1045(28000):用户“root”@“localhost”的访问被拒绝(使用密码:否)

h43kikqp  于 2022-12-03  发布在  Mysql
关注(0)|答案(1)|浏览(159)

我正在创建mysql docker容器使用下面的docker-compose文件。服务创建成功,但当我试图进入容器内得到下面的错误ERROR 1045(28000):用户“root”@“localhost”的访问被拒绝(使用密码:否)

docker container exec -it 966 /bin/bash
root@96607883960b:/# mysql -uroot -p
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
root@96607883960b:/# 


version: '3.3'

services:
   db:
    image: mysql:5.7.29
    container_name: mysql
    deploy:
      replicas: 1
      restart_policy:
        condition: on-failure
    environment:
      - MYSQL_USER="testpass"
      - MYSQL_PASSWORD="testpass"
      - MYSQL_ROOT_PASSWORD="testpass"
    ports:
      - 33060:3306
    volumes:
      - /Users/hello/Work/Volumes/wavolumes/mysql:/var/lib/mysql

我发现很多文章对解决这个问题没有帮助
有没有人能解决这个问题?

wd2eg0qa

wd2eg0qa1#

您的连接实际上工作正常,您可以运行以下命令来验证它(服务应该已经在运行!):

docker-compose exec db sh -c 'mysql -uroot -p${MYSQL_ROOT_PASSWORD}'

问题是您使用了错误的密码。
通过运行docker-compose config,您可以很容易地看到问题所在。
此版本应该可以解决您的问题:

version: '3.3'

services:
   db:
    image: mysql:5.7.29
    container_name: mysql
    deploy:
      replicas: 1
      restart_policy:
        condition: on-failure
    environment:
      - MYSQL_USER=testpass
      - MYSQL_PASSWORD=testpass
      - MYSQL_ROOT_PASSWORD=testpass
    ports:
      - 33060:3306
    volumes:
      - /Users/hello/Work/Volumes/wavolumes/mysql:/var/lib/mysql

相关问题