测试平台运维篇(三):docker部署MySQL8.0
·
docker部署MySQL 8.0的方法
最近很多都开始使用mysql8.0,部署8.0和5.7有一些小区别,还是记录一下
拉取MySQL 8.0镜像
使用以下命令拉取官方MySQL 8.0镜像:
docker pull mysql:8.0
启动MySQL容器
运行容器时需设置root密码、数据卷映射及端口映射:
docker run --name mysql8.0 \
-e MYSQL_ROOT_PASSWORD=your_password \
-v /path/to/data:/var/lib/mysql \
-p 3306:3306 \
-d mysql:8.0 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci
-v参数指定数据持久化路径,-p映射主机端口,--character-set-server设置默认字符集为UTF-8MB4。
调整配置文件(可选)
如需自定义配置,可在主机创建my.cnf文件并挂载到容器:
docker run --name mysql8.0 \
-v /path/to/my.cnf:/etc/mysql/my.cnf \
...其他参数同上...
配置文件示例:
[mysqld]
default_authentication_plugin=mysql_native_password
max_connections=200
容器管理命令
- 查看运行状态:
docker ps -f name=mysql8.0 - 进入容器终端:
docker exec -it mysql8.0 bash - 停止/启动容器:
docker stop mysql8.0 docker start mysql8.0
远程连接配置
若需远程访问,需在MySQL容器内执行以下SQL:
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%';
FLUSH PRIVILEGES;
同时确保主机的防火墙允许3306端口通信。
数据备份与恢复
- 备份数据库:
docker exec mysql8.0 sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > backup.sql - 恢复数据:
cat backup.sql | docker exec -i mysql8.0 sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD"'
性能优化建议
- 为容器分配足够内存(通过
-m 2g参数限制内存)。 - 使用SSD存储以提高I/O性能。
- 监控容器资源使用情况:
docker stats mysql8.0。
通过以上步骤可快速部署并管理MySQL 8.0容器,适用于测试或生产环境。
更多推荐
所有评论(0)