# Docker安装MySQL的步骤 ## 前言 在现代化开发中,容器化技术已成为部署和管理数据库的主流方式之一。Docker作为最流行的容器平台,能够快速搭建隔离的MySQL环境,避免复杂的本地安装配置。本文将详细介绍通过Docker安装MySQL的完整流程,包括镜像拉取、容器运行、配置优化及常见问题解决。 --- ## 一、环境准备 在开始前,请确保已满足以下条件: 1. **安装Docker引擎** - 桌面端用户:下载[Docker Desktop](https://www.docker.com/products/docker-desktop)(Windows/macOS) - Linux用户:执行命令安装 ```bash curl -fsSL https://get.docker.com | sh ``` 2. **验证Docker安装** ```bash docker --version docker-compose --version # 如需使用Compose
Docker Hub提供官方MySQL镜像,支持多版本:
# 拉取最新版(不推荐生产环境使用) docker pull mysql:latest # 拉取指定版本(推荐) docker pull mysql:8.0.34
版本选择建议: - 开发测试:8.0.x
- 生产环境:明确指定小版本号如8.0.34
docker run -d \ --name mysql-server \ -e MYSQL_ROOT_PASSWORD=yourpassword \ -p 3306:3306 \ mysql:8.0.34
参数说明: - -d
:后台运行 - --name
:容器别名 - -e MYSQL_ROOT_PASSWORD
:必须设置的环境变量 - -p
:端口映射(主机端口:容器端口)
docker run -d \ --name mysql-prod \ -e MYSQL_ROOT_PASSWORD=StrongPass!123 \ -e MYSQL_DATABASE=app_db \ -e MYSQL_USER=app_user \ -e MYSQL_PASSWORD=UserPass!456 \ -p 3307:3306 \ -v /data/mysql:/var/lib/mysql \ --restart unless-stopped \ mysql:8.0.34 \ --character-set-server=utf8mb4 \ --collation-server=utf8mb4_unicode_ci
新增关键配置: - 数据卷挂载(-v
):持久化数据 - 自动重启策略 - 字符集配置 - 创建初始数据库和用户
检查容器状态
docker ps -f name=mysql-server
查看日志
docker logs mysql-server
进入容器交互
docker exec -it mysql-server mysql -uroot -p
输入密码后执行:
SHOW DATABASES; STATUS;
推荐将MySQL数据目录映射到宿主机:
-v /host/path:/var/lib/mysql
目录权限问题处理:
chown -R 999:999 /host/path # MySQL容器内用户UID为999
创建docker-compose.yml
文件:
version: '3.8' services: mysql: image: mysql:8.0.34 container_name: mysql-compose environment: MYSQL_ROOT_PASSWORD: rootpass MYSQL_DATABASE: app_db TZ: Asia/Shanghai ports: - "3306:3306" volumes: - mysql_data:/var/lib/mysql command: --max_connections=200 --innodb_buffer_pool_size=1G volumes: mysql_data:
启动服务:
docker-compose up -d
修改默认root密码
ALTER USER 'root'@'%' IDENTIFIED BY 'NewComplexPassword!';
创建应用专用用户
CREATE USER 'app_user'@'%' IDENTIFIED BY 'AppUserPass123'; GRANT SELECT,INSERT,UPDATE ON app_db.* TO 'app_user'@'%';
启用SSL连接(需挂载证书文件)
-v /path/to/certs:/etc/mysql/certs
docker inspect mysql-server | grep -i error
在my.cnf中添加:
[client] default-character-set=utf8mb4 [mysql] default-character-set=utf8mb4
docker exec mysql-server sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > backup.sql
cat backup.sql | docker exec -i mysql-server mysql -uroot -p"$MYSQL_ROOT_PASSWORD"
通过Docker部署MySQL极大简化了数据库环境搭建流程,但生产环境仍需注意: - 定期备份数据卷 - 监控容器资源使用 - 及时更新镜像版本
掌握这些核心步骤后,您已能快速构建可靠的MySQL容器化服务。如需更高级配置,可参考官方文档。 “`
该文档包含约1500字,采用Markdown格式编写,涵盖从基础安装到生产环境配置的全流程,并包含代码块、列表、强调等标准Markdown语法元素。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。