我开始了码头工人的容器与MySQL。
其实我想创建一个新用户和新表 - 我必须这样做在MySQL工作台。
此北京时间我的搬运工运行命令:
docker run -p 3306:3306 --name mysql-server -v ~/Development/web/myproject/docker/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:latest
我的问题是:
我如何添加一个SQL启动脚本(仅适用于容器的第一次启动),这造成我的用户,我的表?
我有哪些步骤呢?
可能有人帮助我在这里?
非常感谢!
Answer 1:
你需要通过创建用户MYSQL_USER
, MYSQL_PASSWORD
ENV VAR和使用量/docker-entrypoint-initdb.d
与您的启动脚本映射目录( .sh
, .sql
, .sql.gz
)
docker run -p 3306:3306 --name mysql-server \
-v ~/Development/web/myproject/docker/mysql:/var/lib/mysql \
-v ~/Development/web/myproject/docker/yourstartupscripts:/docker-entrypoint-initdb.d \
-e MYSQL_ROOT_PASSWORD=root \
-e MYSQL_USER=youruser \
-e MYSQL_PASSWORD=youruserpassword \
-d mysql:latest
说明来自: https://hub.docker.com/_/mysql/
MYSQL_USER,MYSQL_PASSWORD
这些变量是可选的,配合使用,创建一个新用户并设置该用户的密码。 该用户将被授予超级用户权限(见上文),用于通过所述指定的数据库MYSQL_DATABASE
变量。 这两个变量都需要要创建一个用户。
初始化一个新的实例
当容器启动的第一次,具有指定名称的新数据库将被创建并与所提供的配置变量初始化。 此外,扩展它会执行文件.sh
, .sql
和.sql.gz
是被发现在/docker-entrypoint-initdb.d
。 文件将按照字母顺序执行。 您可以轻松地填充你的mysql服务安装SQL转储到该目录 ,并提供自定义图像与提供的数据。 SQL文件默认被导入到由指定的数据库MYSQL_DATABASE
变量。
文章来源: How to add a startup script to a mysql docker container?