我有一个用例,需要在一个容器上运行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
上面的命令将启动容器,但是当我将bash放入正在运行的容器中时,我无法看到带有密码的用户。只有mysql正在运行
docker exec -it testdata_db bash
请让我知道我要去哪里了。我遵循了docker官方repo链接下的文档。
最佳答案
我通过使用所需的sql命令创建init.sql来解决此问题,以创建user,表,该表从我的主机加载到docker-entrypoint-initdb.d /下的容器中,并根据需要设置env变量。这使得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
关于mysql - 使用数据库指定时,Docker MySQL容器未使用密码创建用户,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48110574/