Docker容器中的MySQL不接受凭据

6g8kf2rb  于 12个月前  发布在  Mysql
关注(0)|答案(1)|浏览(149)

我有一个Dockerfile,稍后我想将一些初始SQL转储放入其中:

FROM mysql:debian

EXPOSE 3306

ENTRYPOINT ["docker-entrypoint.sh"]

CMD ["mysqld"]

然后是我的docker-compose.yaml

version: '3'

services:
  mysql:
    container_name: ${CONTAINER_NAME}
    build:
      context: .
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=${ROOT_PASSWORD}
      - MYSQL_USER=${MYSQL_USER}
      - MYSQL_PASSWORD=${MYSQL_PASSWORD}
      - MYSQL_DATABASE=${MYSQL_DATABASE}

我可以很好地将docker exec -it sqlcontainer mysql -uroot -p放入我的容器中(也可以使用$MYSQL_USER),但是当我试图从外部做同样的事情时,例如。对于mysql -uroot -p,我总是得到ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
我已经失去理智了。我做错了什么?与容器内的mysqld的通信显然可以工作,否则我不会得到任何响应。
我在Windows上,如果这对任何人都是一个提示。但上面的情况对PowerShell、CMD甚至Git Bash都是如此。

zz2j4svz

zz2j4svz1#

承认这是令人尴尬的,但评论者@RiggsFolly和@DavidMaze都说得对:我已经很久没有在我的机器上使用MySQL了。当我检查任务管理器时,我确实发现一个本地mysqld已经在运行了,当然它是用不同的凭证启动的。在终止进程(并在compose文件中添加缺少的端口)之后,我能够连接到我的容器化示例。
希望这能帮助将来福尔斯同样陷阱的人。

相关问题