Docker部署MySQL
文章目录
一、简介
选择使用Docker来运行MySQL可以提高部署和管理的效率,同时也可以提高系统的灵活性和可靠性。因此,很多人选择使用Docker来运行MySQL。
作者参考了此篇文献,加以自己的需要修改出这份文章
本文只讲述了docker部署MySQL,对于docker部署的过程,还请读者们自行查找文献
环境需要:
- docker
- 推荐安装docker-compose命令工具
二、部署流程
2.1 拉取镜像
docker pull mysql:8.0.35
执行完后再执行以下命令查看镜像是否拉取成功
docker images
2.2 创建数据卷,存放MySQL数据
docker volume create mysql_data8_35
2.3 启动MySQL镜像
2.3.1 启动脚本
docker run -d -e MYSQL_ROOT_PASSWORD=密码 --name 镜像名称 -d -p 3306:3306 -v mysql_data8_35:/var/lib/mysql -v /日志目录/log:/var/log/ -v /配置文件目录/my.cnf:/etc/mysql/my.cnf mysql:8.0.35
其中中文提到的部分需要根据自己服务器资源进行填写
- 镜像名称:MySQL镜像名称
- 密码:MySQL后续登录密码设置
- 日志目录:后续日志输出路径
- 配置文件目录:my.cnf文件所在路径,linux一般是/etc/my.cnf
2.3.2 查看启动状态
docker exec -it 镜像名称 bash
进入途中命令行则启动正常,输入exit回车可退出
2.4 查看数据库、表
首先查看MySQL镜像ID
docker images
2.4.1 将.sql文件传入镜像
这里的.sql文件是数据库脚本,随便一个都行,测试用的,用xshell或finalshell远程连接工具可直接将文件拖拉拽进服务器
随后cd进入文件所在路径,执行以下命令
docker cp user.sql 镜像ID:/root/user.sql
再次用docker exec -it 镜像名 bash
进入镜像,cd到root查看文件是否上传成功,文件存在后exit退出
2.4.2 进入MySQL
docker exec -it 镜像名称 mysql -uroot -p
执行次命令是后,会让你输入密码,就是先前设置的密码,输入正确密码即可进行MySQL操作
- 查看数据库
show databases;
- 创建表
CREATE DATABASE IF NOT EXISTS test DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
2.4.3 执行sql脚本
输入exit退出,再输入
docker exec -it 镜像名称 bash
进入镜像,然后执行以下代码执行sql脚本
mysql -uroot -p test < /root/user.sql
会让你输入密码,输入正确密码后没报错就是执行成功
exit退出,然后再进入MySQL,选择表
use test
再执行查询语句就可以看到你脚本中插入的表和数据了:
select * from user;
2.5 开机自启
没设置开机自启时,我们一般用以下命令启动镜像:
docker run mysql:8.0.35
每次重启docker我们都得手动启动MySQL镜像,所以我们可以通过过以下命令进行开机自启
docker update mysql --restart=always