目录

  • 前言
  • 环境
  • 安装Mysql
  • 下载Mysql
  • 安装Mysql
  • 配置Mysql

前言

记录下DockerMysql的安装


环境

Centos 7 + Docker 23.0.1 + Mysql 8.0.27


安装Mysql

下载Mysql

  • 下载最新版mysql
docker pull mysql

Docker - 安装Mysql_docker

  • 查看镜像列表
docker image ls
docker images

Docker - 安装Mysql_mysql_02

Docker - 安装Mysql_Docker_03

  • 查看镜像版本
docker image inspect (镜像名称):latest|grep -i version

Docker - 安装Mysql_Mysql_04

  • 移除镜像
docker rmi (IMAGE ID)

Docker - 安装Mysql_mysql_05

  • 指定版本下载
docker pull mysql:8.0.27

Docker - 安装Mysql_sql_06


安装Mysql

  • 开启ipv4, 云服务器不需要设置,部分centos需要设置,可以查看配置文件看是否设置,如果没有则需修改配置文件
vim /usr/lib/sysctl.d/00-system.conf

添加

net.ipv4.ip_forward=1

Docker - 安装Mysql_sql_07

  • 重启network服务
systemctl restart network

Docker - 安装Mysql_Docker_08

  • 重启docker服务
systemctl restart docker

Docker - 安装Mysql_mysql_09

  • 启动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 - 安装Mysql_mysql_10

  • 查看运行中的容器
docker ps

Docker - 安装Mysql_Docker_11

  • 安装目录
/home/mysql8

Docker - 安装Mysql_Docker_12

  • 容器监控
docker stats

Docker - 安装Mysql_sql_13

  • 连接数据库

Docker - 安装Mysql_sql_14



配置Mysql

  • 进入mysql容器
docker exec -it mysql bash
  • 连接mysql
mysql -u root -p

Docker - 安装Mysql_Docker_15

  • 修改用户密码
use mysql;
alter user 'root'@'localhost' identified with mysql_native_password by 'sunday';  // 修改密码
flush privileges; // 刷新权限

Docker - 安装Mysql_sql_16

  • 设置远程连接权限
use mysql;
select host from user where user = 'root'; // 通过该命令查看host是否有值'%',有了后面不用执行
update user set host='%' where user='root'; // 设置所有地址可登录
flush privileges;  // 刷新权限

Docker - 安装Mysql_mysql_17

  • 设置密码永不过期
alter user 'root'@'%' identified by 'sunday' password expire never;
flush privileges;

Docker - 安装Mysql_sql_18

  • 设置mysql跟随docker自动重启
docker update mysql --restart=always

Docker - 安装Mysql_mysql_19


- End -

- 个人学习笔记 - - 仅供参考 -


以上为本篇文章的主要内容,希望大家多提意见,如果喜欢记得点个推荐哦

作者:Maggieq8324