Docker - 安装Mysql
前言
记录下Docker
下Mysql
的安装
环境
Centos 7 + Docker 23.0.1 + Mysql 8.0.27
安装Mysql
下载Mysql
- 下载最新版
mysql
docker pull mysql
- 查看镜像列表
docker image ls
docker images
- 查看镜像版本
docker image inspect (镜像名称):latest|grep -i version
- 移除镜像
docker rmi (IMAGE ID)
- 指定版本下载
docker pull mysql:8.0.27
安装Mysql
- 开启
ipv4
, 云服务器不需要设置,部分centos
需要设置,可以查看配置文件看是否设置,如果没有则需修改配置文件
vim /usr/lib/sysctl.d/00-system.conf
添加
net.ipv4.ip_forward=1
- 重启
network
服务
systemctl restart network
- 重启docker服务
systemctl restart docker
- 启动
mysql
容器
docker run -p 3306:3306 --name mysql \
-v /home/mysql8/log:/var/log/mysql \
-v /home/mysql8/data:/var/lib/mysql \
-v /home/mysql8/conf:/etc/mysql \
-v /home/mysql8/mysql-files:/var/lib/mysql-files \
-e MYSQL_ROOT_PASSWORD=sunday \
-d mysql:8.0.27 \
--character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
- 参数释义:
docker run: 运行一个容器,每个容器相互隔离,他都是独立的运行环境,是一个完整的实例
-p 3306:3306:把mysql容器自己的端口映射到虚拟主机,这样我们才能访问,这是端口映射。(左侧是本地端口:右侧是docker容器里的端口)
--name mysql:为容器取名,这个名字随意。
-v:文件路径的挂载(数据库文件,日志,配置文件)
-e MYSQL_ROOT_PASSWORD:添加环境参数,如密码
d mysql:8.0.27:在后端运行,指定使用的是哪个镜像
- 查看运行中的容器
docker ps
- 安装目录
/home/mysql8
- 容器监控
docker stats
- 连接数据库
配置Mysql
- 进入
mysql
容器
docker exec -it mysql bash
- 连接mysql
mysql -u root -p
- 修改用户密码
use mysql;
alter user 'root'@'localhost' identified with mysql_native_password by 'sunday'; // 修改密码
flush privileges; // 刷新权限
- 设置远程连接权限
use mysql;
select host from user where user = 'root'; // 通过该命令查看host是否有值'%',有了后面不用执行
update user set host='%' where user='root'; // 设置所有地址可登录
flush privileges; // 刷新权限
- 设置密码永不过期
alter user 'root'@'%' identified by 'sunday' password expire never;
flush privileges;
- 设置
mysql
跟随docker
自动重启
docker update mysql --restart=always