第一步:拉取镜像

自动拉取最新版本的Mysql

docker pull mysql

使用命令看一眼

docker images


第二步:创建本地持久化文件

在你的随便一个路径下,我这里时 /home路径下,创建 logdataconf目录

mkdir -p /home/mysql/{log,data,conf}


第三步:编写自己的my.cnf文件

cd /home/mysql/cnf
vim my.cnf

将以下内容进行粘贴:wq 退出即可

[client]
default-character-set=utf8mb4
​
[mysql]
default-character-set=utf8mb4
​
[mysqld]
# 字符集
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
skip-character-set-client-handshake
​
# 性能与安全
skip-name-resolve
secure_file_priv=/var/lib/mysql


第四步:构建容器

docker run --name order \
-p 3000:3306 \ 
-d --restart unless-stopped \ 
-v /home/mysql/log:/var/log/mysql \ 
-v /home/mysql/data:/var/lib/mysql \
-v /home/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=111111 mysql

参数名

用途

--name order

定义容器名为 order

-p 3000:3306

服务器对外暴露端口为3000

-d

后台

--restart unless-stopped

如果停止了,自动重启

-v /home/mysql/log:/var/log/mysql

将本地的 /home/mysql/log文件内容同步于容器的/var/log/mysql

-v /home/mysql/data:/var/lib/mysql

同上

-v /home/mysql/conf:/etc/mysql

同上

-e MYSQL_ROOT_PASSWORD=111111

设置密码为六个1

构建完成后使用以下命令查看是否生效

docker ps

或者使用docker-compose -> docker-compose up -d 即可

version: '3.8'

services:
  mysql: 
    image: mysql:latest
    container_name: sspro_mysql
    ports:
      - "3002:3306"
    environment:
      MYSQL_ROOT_PASSWORD: 111111
      TZ: Asia/Shanghai
    volumes:
      - /home/sspro/mysql/data:/var/lib/mysql
      - /home/sspro/mysql/conf:/etc/mysql/conf.d
      - /home/sspro/mysql/log:/var/log/mysql
    restart: always
    command: 
      --default-authentication-plugin=mysql_native_password
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_unicode_ci

最后:打开云服务器的安全组,添加3000端口的放行规则,不然远程连接不上

忽有故人心上过,回首山河已是秋