Docker mysql容器在使用数据库指定时不使用密码创建用户

时间:2018-01-05 09:23:16

标签: mysql docker

我有一个用例,我需要在容器上运行mysql并将其链接到另一个容器。我在我的主机位置也有我的db文件数据,它作为卷安装到数据库容器中......条件是不以root用户身份运行容器,而是以具有所有权限的其他用户身份运行容器。 db已安装卷中。

我运行了以下命令:

docker run -d -v ~/testdata:/var/lib/mysql -e MYSQL_DATABASE=Testdata_DB -e MYSQL_USER=testdata -e MYSQL_PASSWORD=mypasswordhere -p 3306:3306 --name=testdata_db mysql

以上命令将启动容器,但是当我进入正在运行的容器时,我无法看到具有密码的用户。只有mysql正在运行

docker exec -it testdata_db bash

请告诉我哪里出错了。我按照docker官方回购链接下的文档。

1 个答案:

答案 0 :(得分:1)

我通过使用所需的sql命令创建一个init.sql来创建用户,从主机加载到docker-entrypoint-initdb.d /下的容器的表,并根据需要设置env varibles。这使得mysql实例作为一个新实例加载并加载了所有必需的表和数据。 最后的命令是:

docker run --name testdata_db -p 3306:3306 -e "MYSQL_ROOT_PASSWORD= " -e "MYSQL_USER=test" -e "MYSQL_PASSWORD=mypass" -e "MYSQL_DATABASE=mysql" -v ~/mysql/db/:/var/lib/mysql/ -v ~/mysql/init/:/docker-entrypoint-initdb.d/ -d mysql