目录
一、Docker安装MySQL
1. 准备自定义目录
命令如下:
# 创建主目录
sudo mkdir -p /data/mysql
# 创建子目录结构
sudo mkdir -p /data/mysql/data # 数据文件
sudo mkdir -p /data/mysql/conf # 配置文件
sudo mkdir -p /data/mysql/logs # 日志文件
sudo mkdir -p /data/mysql/initdb.d # 初始化脚本
# 设置适当的权限(MySQL 在容器中通常以 mysql 用户运行,UID 为 999)
sudo chown -R 999:999 /data/mysql
效果图如下:

2. 创建自定义配置文件
命令如下:
sudo tee /data/mysql/conf/my.cnf > /dev/null <<EOF
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
default-time-zone = '+8:00'
# 性能优化参数
innodb_buffer_pool_size = 256M
max_connections = 200
key_buffer_size = 32M
thread_cache_size = 16
# 日志配置
slow_query_log = 1
slow_query_log_file = /var/lib/mysql/slow-query.log
long_query_time = 2
# 安全设置
max_allowed_packet = 16M
[client]
default-character-set = utf8mb4
EOF
效果图如下:

3. 部署 MySQL 容器
命令如下(请确保将示例中的密码和用户名替换为您自己的强密码和用户名):
# 拉取 MySQL 镜像(以 8.0 版本为例)
docker pull mysql:8.0
# 运行 MySQL 容器
docker run -d \
--name mysql \
--restart=always \
-p 3306:3306 \
-v /data/mysql/data:/var/lib/mysql \
-v /data/mysql/conf/my.cnf:/etc/mysql/my.cnf:ro \
-v /data/mysql/logs:/var/log/mysql \
-v /data/mysql/initdb.d:/docker-entrypoint-initdb.d \
-e MYSQL_ROOT_PASSWORD=your_strong_password \
-e MYSQL_DATABASE=your_db_name \
-e MYSQL_USER=your_user \
-e MYSQL_PASSWORD=your_password \
mysql:8.0
重要凭据参数解释
-
MYSQL_ROOT_PASSWORD:- 设置 MySQL root 用户的密码
- 这是必需的参数,容器不会成功启动除非设置了此项
-
MYSQL_DATABASE:- 可选参数
- 容器首次启动时会自动创建的数据库名称
-
MYSQL_USER和MYSQL_PASSWORD:- 可选参数,但必须一起使用
- 创建一个新的非 root 用户
- 此用户将获得
MYSQL_DATABASE数据库的完全权限
效果图如下:

4. 验证 MySQL 部署
命令如下:
# 查看容器状态
docker ps -a | grep mysql

最低0.47元/天 解锁文章
1761

被折叠的 条评论
为什么被折叠?



