Appearance
Docker 部署 MySQL
1. 部署 MySQL Server
MySQL 的默认配置文件可以在 /etc/mysql/my.cnf 中找到,该文件可能会通过 !includedir 包含额外的目录,例如 /etc/mysql/conf.d 或 /etc/mysql/mysql.conf.d。
默认情况下 MySQL 容器将数据保存在 /var/lib/mysql 目录下。
Bash
docker run \
--name YOUR_NAME \
-d \
-e MYSQL_ROOT_PASSWORD=YOUR_PASSWORD \
-p 3306:3306 \
-v /your/custom/conf.d:/etc/mysql/conf.d \
-v /your/custom/datadir:/var/lib/mysql \
mysql:8.4.41
2
3
4
5
6
7
8
2
3
4
5
6
7
8
此外许多配置选项可以作为标志传递给 mysqld。这将使您能够灵活地自定义容器,而无需使用 cnf 文件。例如,将所有表的默认编码和排序规则更改为 UTF-8(utf8mb4):
Bash
docker run \
--name YOUR_NAME \
-d \
-e MYSQL_ROOT_PASSWORD=YOUR_PASSWORD \
-p 3306:3306 \
-v /your/custom/datadir:/var/lib/mysql \
mysql:8.4.4 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_0900_ai_ci1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
查看所有可用选项:
Bash
docker run -it --rm mysql:8.4.4 --verbose --help2. 环境变量
除上述示例中的 MYSQL_ROOT_PASSWORD 环境变量外,其它环境变量如:MYSQL_DATABASE、MYSQL_USER、MYSQL_PASSWORD 等,请参考 MySQL Docker 官方文档。
Note:MySQL 容器会执行在
/docker-entrypoint-initdb.d目录下找到的扩展名为.sh、.sql和.sql.gz的文件(文件将按字母顺序执行)。默认情况下文件将被导入到由MYSQL_DATABASE变量指定的数据库中。
3. 临时运行 MySQL Client
Bash
docker run \
-it \
--rm \
mysql:8.4.4 \
mysql -hsome-mysql -uexample-user -p