Mysql-Docker镜像配置详解
MySQL是一种广泛使用的开源关系数据库管理系统(RDBMS)。

docker-mysql
应用示例
- 启动一个mysql容器
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:version
- 使用自定义mysql配置文件
MySQL的默认配置/etc/mysql/my.cnf,其中可以包含!includedir其他目录,例如/etc/mysql/conf.d或/etc/mysql/mysql.conf.d。
如果/my/mysql/conf.d你自定义的mysql配置文件,则可以直接挂载到mysql容器中:
docker run --name some-mysql -v /my/mysql/conf.d:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:version
MySQL实例启动会加载/etc/mysql/my.cnf和/etc/mysql/conf.d/下面的所有配置文件,并采取优先次序设置。
- 持久化
MySQL默认的数据库存储目录是/var/lib/mysql,您可以通过挂载本机目录覆盖此目录,来达到持久化的效果
docker run --name some-mysql -v /my/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:version
- 以非root用户启动容器
docker run --user 1000:1000 --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:version
可用的环境变量(首次启动)
启动mysql镜像时,可以通过在docker run命令行设置一个或多个环境变量来调整MySQL实例的配置。
请注意,如果使用已包含数据库的数据目录启动容器,则以下任何变量都将无效:容器启动时,任何现有数据库都将保持不变。
- MYSQL_ROOT_PASSWORD
必须,设置root用户密码
- MYSQL_DATABASE
可选,允许您指定在映像启动时要创建的数据库的名称。如果提供了用户名/密码(请参阅下文),则将授予该用户对该数据库的超级用户访问权限(与相对应GRANT ALL)。
- MYSQL_USER, MYSQL_PASSWORD
可选,创建一个用户并指定密码。这两个变量都是创建用户所必需的。
请注意,不能使用此变量来创建root用户
- MYSQL_ALLOW_EMPTY_PASSWORD
可选。设置为yes则允许root用户的密码为空。
- MYSQL_RANDOM_ROOT_PASSWORD
可选。设置yes则为root用户生成一个随机的初始密码(使用pwgen)。生成的root密码将被打印到stdout(GENERATED ROOT PASSWORD: .....)。
- MYSQL_ONETIME_PASSWORD
初始化完成后,将root用户(不是MYSQL_USER!中指定的用户)设置为过期用户,从而在首次登录时强制更改密码。注意:仅MySQL 5.6+支持此功能。
相关推荐
-
MySQL 由于 Java 日期 LocalDateTime 数据精度引发的线上问题
MySQL 由于 Java 日期 LocalDateTime 数据精度引发的线上问题2025-04-02 00:59:31 -
MySQL最常用分组聚合函数2025-04-02 00:55:56
-
NGINX: 轮询调度、加权轮询调度、平滑加权轮询调度2025-04-02 00:55:49
-
在Windows平台上安装Nginx并设置开机自动启动服务2025-04-02 00:47:04
-
PHP判断文件或者目录是否可写,兼容windows/linux系统
PHP判断文件或者目录是否可写,兼容windows/linux系统2025-04-02 00:27:54