首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker未设置MariaDB密码

Docker未设置MariaDB密码
EN

Stack Overflow用户
提问于 2020-05-22 15:45:54
回答 5查看 7.4K关注 0票数 3

在我的docker-compose.yml中

代码语言:javascript
复制
version: '3'
services:
  db:
    image: mariadb:latest
    volumes:
      - ./dc_test_db:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: secret

当我通过以下方式连接时:

代码语言:javascript
复制
sudo docker exec -it docker_db_1 mysql -u root -p 

我必须让密码为空才能登录。怎么啦?

EN

回答 5

Stack Overflow用户

发布于 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选项运行服务,使用新定义的设置重新构建映像。)

请注意,执行这些步骤将擦除存储在容器内的所有数据。

票数 5
EN

Stack Overflow用户

发布于 2021-03-04 06:11:13

您似乎正在从现有的db数据目录启动mariadb容器,这将导致使用当前数据库而不是初始化新数据库。因此,为了解决这个问题,我建议删除任何现有的mariadb容器,删除当前的db目录内容,再次运行docker compose:

代码语言:javascript
复制
$ docker-compose down -v
$ rm -Rf dc_test_db/*
$ docker-compose up -d
票数 2
EN

Stack Overflow用户

发布于 2020-05-22 17:52:39

这是因为您从容器本身内部本地使用客户端。本地连接不要求输入密码。

尝试从您的主机连接到docker containerip:3306,然后它会要求输入密码

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61950105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档