首页 > 解决方案 > Docker 没有设置 MariaDB 密码

问题描述

在我的 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 

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

标签: dockermariadb

解决方案


我在 mariadb 的 10.4 版中遇到了这个问题,通过更改为 10.3 版来解决这个问题。但是这个问题可能还有另一个原因。

在 Docker 架构中,需要注意的是,镜像在第一次构建后是不可变的。即通过改变docker compose文件中定义的局部变量,重新运行服务或者重新uping服务,构建镜像的初始设置不会有任何变化。要应用这些更改,必须再次执行构建映像和容器以及运行服务的步骤。可以按如下方式完成。

1.docker-compose stop(首先我们停止服务)

2.Docker-compose rm(然后我们清理所有相关的容器)

3.Docker-compose up --build -d (最后使用 --build 选项运行服务以使用新定义的设置重建图像。)

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


推荐阅读