docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
环境变量 | 说明 | 示例 |
---|---|---|
MYSQL_ROOT_PASSWORD |
设置 root 用户密码 | -e MYSQL_ROOT_PASSWORD=123456 |
MYSQL_DATABASE |
容器启动时创建的数据库 | -e MYSQL_DATABASE=my_db |
MYSQL_USER , MYSQL_PASSWORD |
创建新用户并设置密码 | -e MYSQL_USER=user -e MYSQL_PASSWORD=pass |
MYSQL_ALLOW_EMPTY_PASSWORD |
允许空密码 (危险) | -e MYSQL_ALLOW_EMPTY_PASSWORD=yes |
MYSQL_RANDOM_ROOT_PASSWORD |
生成随机 root 密码 | -e MYSQL_RANDOM_ROOT_PASSWORD=yes |
docker run --name some-mysql -v /my/own/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
docker run --name some-mysql -v /my/custom:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
docker run --name some-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
docker run -d \
--name mysql-server \
-p 3306:3306 \
-v /data/mysql:/var/lib/mysql \
-v /data/mysql-conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=strongpassword \
-e MYSQL_DATABASE=app_db \
-e MYSQL_USER=app_user \
-e MYSQL_PASSWORD=userpassword \
--restart unless-stopped \
mysql:8.0 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci
docker exec -it some-mysql mysql -uroot -p
docker exec some-mysql sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /path/to/backup.sql
docker exec -i some-mysql sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD"' < /path/to/backup.sql
caching_sha2_password
认证插件,某些旧客户端可能需要调整--character-set-server
和 --collation-server
参数设置字符集mysql:latest
- 最新稳定版mysql:8.0
- MySQL 8.0 系列mysql:5.7
- MySQL 5.7 系列 (旧版但稳定)建议根据应用需求选择特定版本而非使用 latest 标签。