在Docker中安装MySQL8完整版

以在docker上安装MySQL8.0.32为例

准备工作

新增以下文件夹

mkdir /usr/local/docker/mysql/conf
mkdir /usr/local/docker/mysql/data
mkdir /usr/local/docker/mysql/log

在conf目录新增my.cfg配置文件

cd /usr/local/docker/mysql/conf
touch my.cfg
vi my.cfg

按“i”键键入编辑模式
输入以下内容

[client]
default-character-set=utf8mb4
 
[mysql]
default-character-set=utf8mb4
 
[mysqld]
#服务端口号 默认3306
port=3306
 
datadir = /work/docker/mysql/data
 
init_connect='SET NAMES utf8mb4'
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
 
# 最大连接数
max_connections=300
 
# 连接失败的最大次数。防止有人从该主机试图攻击数据库系统
max_connect_errors=15
 
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

准备工作完毕 end

ready

开始安装MySQL8.0.32

  1. 去docker镜像仓库拉取mysql镜像
    docker镜像仓库地址:https://hub.docker.com/_/mysql/tags
    推荐方法:使用docker命令直接拉取

    docker pull mysql:8.0.32
    
  2. 检查mysql镜像是否拉取成功

    docker images
    

    如下代表拉取成功在这里插入图片描述

  3. 启动mysql容器

    docker run -p 3306:3306 --name mysql8 --privileged=true -v /usr/local/docker/mysql/log:/var/log/mysql -v /usr/local/docker/mysql/data:/var/lib/mysql -v /usr/local/docker/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=root123456 -itd 4f06b49211c0
    

    -p 设置docker容器映射端口
    –name 设置docker容器名称
    –privileged=true 设置MySQL 的root用户权限, 否则外部不能使用root用户登陆,true为允许root登录
    -v /usr/local/docker/mysql/log:/var/log/mysql 挂载mysql日志节点
    -v /usr/local/docker/mysql/data:/var/lib/mysql 挂载mysql数据节点
    -v /usr/local/docker/mysql/conf:/etc/mysql/conf.d 挂载mysql服务配置文件节点
    -e MYSQL_ROOT_PASSWORD=root123456 设置mysql数据库root用户初始密码

忘记设置mysql容器跟随docker自启动,可以使用如下命令解决:
docker update --restart=always 容器名称

docker update --restart=always mysql8
--restart=always 设置mysql容器跟随docker自启动

批量设置 docker update --restart=always $(docker ps -aq)

  1. 验证MySQL容器是否启动成功

    docker ps
    
  2. 使用exec命令打开新的mysql终端,防止exit退出容器

    docker exec -it mysql8 /bin/bash
    
  3. 连接mysql

    mysql -u root -p
    输入root密码:root123456
    
  4. 修改访问主机以及密码

    ALTER USER 'root'@'%' IDENTIFIED BY 'root123456';
    
  5. 刷新权限

    FLUSH PRIVILEGES;
    

    在这里插入图片描述
    在docker中安装配置MySQL容器完毕
    end

设置mysql可以外网访问

  1. 开启云服务器防火墙端口
    例如:腾讯云
    在这里插入图片描述

  2. 开启centos防火墙

    systemctl start firewalld
    
  3. 查看防火墙是否启动成功

    systemctl status firewalld
    

在这里插入图片描述

  1. 查询防火墙已开放端口

    firewall-cmd --list-all
    

    在这里插入图片描述

  2. 添加3306端口到防火墙

    firewall-cmd --add-port=3306/tcp --permanent
    
  3. 重载防火墙

    firewall-cmd --reload
    
  4. 再次查看防火墙已开放端口,检查3306端口是否开启成功

    firewall-cmd --list-all
    firewall-cmd --permanent --query-port=3306/tcp
    

在这里插入图片描述

  1. 使用本地MySQL管理工具比如:navicat、tableplus等,验证连接mysql数据库

设置mysql容器外网访问完毕

end

猜你喜欢

转载自blog.csdn.net/lu962820662/article/details/129339908