gpt4 book ai didi

mysql - Docker 容器无法连接到其 mysql 服务器(访问被拒绝)

转载 作者:行者123 更新时间:2023-11-30 21:25:19 25 4
gpt4 key购买 nike

我像这样创建了一个 docker 容器及其 ​​mysql 服务器:

docker run -d\
--name mysql-server
--restart on-failure\
-e MYSQL_ROOT_PASSWORD=1234\
-e MYSQL_DATABASE=users\
-v volume1:/var/lib/mysql\
mysql:latest --default-authentication-plugin=mysql_native_password

但是当我尝试登录时,出现拒绝访问错误。以下是我尝试登录 mysql 服务器的方式:

docker exec -it spawning-pool mysql -uroot -p

这是我得到的回复:

Enter password: (I put 1234 here)
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

docker ps -a 显示:

6909b7003519        mysql:latest        "docker-entrypoint.s…"   38 minutes ago      Up 38 
minutes 3306/tcp, 33060/tcp mysql-server

docker exec mysql-server env 显示:

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=6909b7003519
MYSQL_ROOT_PASSWORD=1234
MYSQL_DATABASE=users
GOSU_VERSION=1.7
MYSQL_MAJOR=8.0
MYSQL_VERSION=8.0.18-1debian9
HOME=/root

我试过更改 mysql 版本,但那不起作用。获取随 secret 码有效,我不知道为什么。我也不能使用随 secret 码,因为这是一个学校项目,我必须遵循一些指导方针。我已经为此花费了数小时,非常感谢任何帮助。

最佳答案

似乎您必须更改密码并使用现有卷运行命令,因此它不会将新密码设置为 Docker MySQL 镜像的默认行为。

你有两个选择

  • 尝试删除卷并运行容器
docker volume rm volume1 && docker run -it --rm -v volume1:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=12345 -e MYSQL_DATABASE=users mysql:latest --default-authentication-plugin=mysql_native_password
  • 尝试使用在卷创建期间设置的旧密码运行

关于mysql - Docker 容器无法连接到其 mysql 服务器(访问被拒绝),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59388430/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com