脉金捷脉金捷
主页
  • VuePress
  • VuePress2
  • Markdown基础命令
  • Java特性
  • Java修饰符
  • Java常见问题
  • Java LocalDate
  • Java Cloud ID
  • Docker-CentOS8
  • Docker-Nginx
  • Docker-Redis
  • Docker-MySQL
  • Docker-Nacos
  • Docker-Seata
  • Docker-Nodejs
  • Docker-runlike
  • Docker基础命令
  • Linux基础软件
  • Linux-SSH登录
  • Linux防火墙-iptables
  • Linux系统目录
主页
  • VuePress
  • VuePress2
  • Markdown基础命令
  • Java特性
  • Java修饰符
  • Java常见问题
  • Java LocalDate
  • Java Cloud ID
  • Docker-CentOS8
  • Docker-Nginx
  • Docker-Redis
  • Docker-MySQL
  • Docker-Nacos
  • Docker-Seata
  • Docker-Nodejs
  • Docker-runlike
  • Docker基础命令
  • Linux基础软件
  • Linux-SSH登录
  • Linux防火墙-iptables
  • Linux系统目录
  • Docker-CentOS8
  • Docker-Nginx
  • Docker-Redis
  • Docker-MySQL
  • Docker-Nacos
  • Docker-Seata
  • Docker-Nodejs
  • Docker-runlike
  • Docker基础命令

Docker 安装 MySQL

Docker 官网:https://docs.docker.com/

Docker Hub 镜像仓库:https://hub.docker.com/

拉取 mysql:latest 镜像

docker pull mysql

创建 MySQL 容器挂载目录

创建准备让 MySQL 容器挂载的相关目录。

mkdir -p /usr/local/workspace/mysql/{conf,data,files,mysqld}

mysql 容器内的程序并不是用 root 用户运行,设置目录权限。

cd /usr/local/workspace/mysql/
chmod 777 ./data ./files ./mysqld

运行 MySQL 容器

  • 运行 MySQL 容器进去拷贝配置文件
docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
  • 拷贝配置文件
docker cp mysql:/etc/mysql/my.cnf /usr/local/workspace/mysql/conf/
docker cp mysql:/etc/mysql/conf.d /usr/local/workspace/mysql/conf/
  • 删除 mysql 容器
docker rm -f mysql
  • 重新创建 mysql 容器并添加挂载卷
docker run -p 11011:3306 --name mysql \
-v /usr/local/workspace/mysql/conf:/etc/mysql \
-v /usr/local/workspace/mysql/data:/var/lib/mysql \
-v /usr/local/workspace/mysql/files:/var/lib/mysql-files \
-v /usr/local/workspace/mysql/mysqld:/var/run/mysqld \
-e MYSQL_ROOT_PASSWORD=123456 -d mysql

MYSQL_ROOT_PASSWORD=123456,该变量会在初始化 root 账号的时候把密码设置为:123456

设置远程登录 mysql

  • 进入 mysql 容器
docker exec -it mysql /bin/bash

  • 登录 mysql
mysql -u root -p

  • 修改远程登录加密插件

一些老的mysql客户端不能用 caching_sha2_password 加密插件,可修改回老的加密验证方式。

use mysql;
alter user 'root'@'%' identified with mysql_native_password by '123456';

设置 mysql 容器自启动

docker update --restart=always mysql
Last Updated: 2/22/22, 6:08 PM
Contributors: maijinjie