在我的docker-compose.yml中
version: '3'
services:
db:
image: mariadb:latest
volumes:
- ./dc_test_db:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: secret当我通过以下方式连接时:
sudo docker exec -it docker_db_1 mysql -u root -p 我必须让密码为空才能登录。怎么啦?
发布于 2020-10-07 00:07:43
我在mariadb的10.4版本中遇到了这个问题,这个问题已经通过更改到10.3版本进行了修复。但这个问题可能还有另一个原因。
在Docker架构中,需要注意的是,镜像在第一次构建后是不可变的。也就是说,通过更改docker组合文件中定义的局部变量并重新运行服务或重新启动服务,构建的镜像的初始设置将不会发生变化。要应用这些更改,必须再次执行构建镜像和容器以及运行服务的步骤。这可以按如下方式完成。
1.1.docker compose stop (首先我们停止服务)
2.2.Docker compose rm (然后我们清理所有相关的容器)
3.3.Docker compose up --build (最后使用-d选项运行服务,使用新定义的设置重新构建映像。)
请注意,执行这些步骤将擦除存储在容器内的所有数据。
发布于 2021-03-04 06:11:13
您似乎正在从现有的db数据目录启动mariadb容器,这将导致使用当前数据库而不是初始化新数据库。因此,为了解决这个问题,我建议删除任何现有的mariadb容器,删除当前的db目录内容,再次运行docker compose:
$ docker-compose down -v
$ rm -Rf dc_test_db/*
$ docker-compose up -d发布于 2020-05-22 17:52:39
这是因为您从容器本身内部本地使用客户端。本地连接不要求输入密码。
尝试从您的主机连接到docker containerip:3306,然后它会要求输入密码
https://stackoverflow.com/questions/61950105
复制相似问题