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


浙公网安备 33010602011771号