Centos环境 使用docker 部署MySQL 8.X详细版本

news2024/12/23 0:06:41

文章目录

  • 安装docker
  • 配置docker 阿里镜像加速
    • 阿里云容器镜像服务ACR
    • 配置镜像源
  • 安装部署MySQL
    • 拉取MySQL镜像
    • 创建挂载文件
    • 测试部署
      • 部署MySQL
      • 进入容器将它的mysql配置同步给宿主机
      • 删除test1测试容器
    • 正式部署MySQL
      • 查看正式部署的容器状态
      • 配置远程连接
      • 字符集以及关闭跳过密码验证等其他配置
      • 同步宿主机的cnf文件给容器
      • 重启MySQL容器
    • 测试远程连接

安装docker

快速部署Docker

配置docker 阿里镜像加速

阿里云容器镜像服务ACR

在这里插入图片描述

配置镜像源

在这里插入图片描述
在上方选择自己的系统版本,我使用的CentOS 然后将下面
在这里插入图片描述
执行命令逐一复制到你的服务器上面运行即可

安装部署MySQL

拉取MySQL镜像

我这里使用的是mysql:8.0.21版本,如果有版本要求,就按照你自己的版本要求

docker pull mysql:8.0.21

查看一下镜像包

docker images

在这里插入图片描述

创建挂载文件

在docker中宿主和容器之间可以通过挂载文件夹或者文件的形式实现容器和宿主的配置统一

mkdir /docker/mysql/conf
mkdir /docker/mysql/logs
mkdir /docker/mysql/data

测试部署

这里为啥叫测试部署,就是我们先启动一个测试,主要是我们需要MySQL的一些配置文件,与其我们自己从网站瞎吉儿找,还不如用它自己,改吧改吧就OK了

部署MySQL

docker run -p 3306:3306 --name test1 -e MYSQL_ROOT_PASSWORD=123456  -d mysql:8.0.21

进入容器将它的mysql配置同步给宿主机

# 前面是容器的目录
# 后面是宿主机的目录(也就是上面创建挂载目录)
docker cp  test1:/etc/mysql /docker/mysql/conf

# 拷贝完成后,我们看一下
cd /dockers/mysql/conf/mysql/conf.d

在这里插入图片描述
这个.cnf 文件就是我们需要的,MySQL很多配置都是在这里配置的

删除test1测试容器

目的已经达到了,这个test1容器已经不需要了

# 先停止容器
docker stop test1
# 再删除容器,主意执行顺序
docker rm test1

正式部署MySQL

执行命令

docker run  -itd  -p 13306:3306 --name MySQL13306 -e character-set-server=utf8mb4 --privileged=true  --restart unless-stopped  -v /dockers/mysql/conf/mysql:/etc/mysql  -v /dockers/mysql/logs:/logs  -v /dockers/mysql/data:/var/lib/mysql -v /etc/localtime:/etc/localtime  -e MYSQL_ROOT_PASSWORD=123456  -d mysql:8.0.21 --lower_case_table_names=1

命令解释

  • -p 13306:3306 将容器的3306端口映射到宿主机端口13306
  • –name 容器的名称,我这里叫MySQL13306 ,这个可以自定义
  • –privileged=true 挂载文件权限设置
  • –restart unless-stopped 设置 开机后自动重启容器
  • -v /dockers/mysql/conf/mysql:/etc/mysql 挂载配置文件
  • -v /dockers/mysql/logs:/logs \ 挂载日志
  • -v /dockers/mysql/data:/var/lib/mysql \ 挂载数据文件 持久化到主机,
  • -v /etc/localtime:/etc/localtime 容器时间与宿主机同步
  • -e MYSQL_ROOT_PASSWORD=123456 设置密码
  • -d mysql:8.0.21 启动的镜像(这里注意一定要和pull下来的版本是一致的)

查看正式部署的容器状态

docker ps -a

在这里插入图片描述

配置远程连接

你也可以使用root连接,但是不推荐

# 进入容器
docker exec -it MySQL13306 /bin/bash

# 登录MySQL,密码就是你启动容器里面设置的密码
mysql -uroot -p

# 切换到mysql库下面
use mysql;

# 创建远程连接用户
CREATE USER 'remote_user_1'@'%' IDENTIFIED BY 'Changeme_123';

# 对远程用户进行授权
GRANT ALL ON *.* TO 'remote_user_1'@'%';

# 刷新权限
FLUSH PRIVILEGES;

# 退出mysql 控制台
exit;

# 退出容器
ctrl+P+Q

字符集以及关闭跳过密码验证等其他配置

注意这里是你的宿主机服务器了,不是容器里面了

vim /dockers/mysql/conf/mysql/conf.d/mysql.cnf

将如下内容复制到到这个cnf文件中,注意[mysql]这个先删除后覆盖替换
文件上面的注释内容你可以不用看了,看了还要百度翻译贼麻烦

[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
# 跳过密码登录
# #skip-grant-tables
# #bind-address = 127.0.0.1
init_connect='SET collation_connection = utf8mb4_general_ci'
init_connect='SET NAMES utf8mb4'
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
skip-character-set-client-handshake
lower_case_table_names=1

同步宿主机的cnf文件给容器

docker cp /dockers/mysql/conf/mysql/conf.d/mysql.cnf MySQL13306 :/etc/mysql/conf.d

重启MySQL容器

docker restart MySQL13306 

测试远程连接

在这里插入图片描述
打完收工!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/654400.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Aop详解

AOP简介 AOP是一种编程思想,就如同面向对象这种编程思想一样,是一种编程范式,用来指导开发者如何组织程序更好的运行 AOP(面向切面编程) 作用:在不改变原代码的前提下,为其增加功能。 连接点…

基于 Yeoman 脚手架技术构建前端项目的实践

NodeJ、CLI 基于 Yeoman 脚手架技术构建前端项目的实践 作者:李俊才 (jcLee95):https://blog.csdn.net/qq_28550263 邮箱 :291148484163.com 本文地址:https://blog.csdn.net/qq_28550263/article/details…

torch.optim.lr_scheduler.OneCycleLR 学习与理解

一、功能和参数 1.1、通过图像直观地理解 OneCycleLR 的过程: 补充: 生成该图像的代码: 来自:torch.optim.lr_scheduler.OneCycleLR用法_dxz_tust的博客-CSDN博客 import cv2 import torch.nn as nn import torch from torchv…

Nodejs二、内置模块

零、文章目录 Nodejs二、内置模块 1、fs 文件系统模块 (1)fs 文件系统模块是什么 fs 模块是 Node.js 官方提供的、用来操作文件的模块。它提供了一系列的方法和属性,用来满足用户对文件的操作需求。 fs.readFile() :用来读取指…

【深度学习-第2篇】CNN卷积神经网络30分钟入门!足够通俗易懂了吧(图解)

网络上有着很多关于CNN入门的教程,但是总还是觉得缺少足够简易、直观、全面的文章,能让人通读下来酣畅淋漓,将CNN概念尽收囊中。本篇文章就想尝试一下,真正地带小白同学们轻松入门。 这篇文章包含很多图片,为了花这些…

k8s-containerd容器运行时默认50G存储位置更换

containerd作为k8s主要的cri,它默认存储位置是使用的/根目录挂载的资源。当容器运行的越来越多,默认的50G不够使用了。有2种方法可以进行解决。 方式1、增加/根分区的磁盘空间。 方式2、修改containerd配置文件,修改默认配置为/home 这里我…

【汤4操作系统】深入理解信号量的使用-三大问题的变体

主要从生产者消费者、读写者、哲学家问题中的经典变体进行讲述,均使用伪代码实现 生产者消费者变体 顾客看作是生产出的产品,理发师看作是消费者,沙发有空位,顾客就进去,沙发有顾客,理发师就去理发 和生产者…

Redis客户端 - Jdies快速入门

原文首更地址,阅读效果更佳! Redis客户端 - Jdies快速入门 | CoderMast编程桅杆Redis客户端 - Jdies快速入门 简介 Jedis is a Java client for Redis designed for performance and ease of use. Jedis是Redis 的 Java 客户端,专为性能和易…

Python中使用matplotlib绘制各类图表示例

折线图 折线图是一种用于表示数据随时间、变量或其他连续性变化的趋势的图表。通过在横轴上放置时间或如此类似的连续变量,可以在纵轴上放置数据点的值,从而捕捉到数据随时间发生的变化。折线图可以用于比较不同变量的趋势,轻松地发现不同的…

不写代码如果解决Jmeter跨线程组取参数值问题?

目录 前言 定义属性法 文件转接法 总结: 前言 如果你工作中已经在用jmeter做接口测试,或性能测试了,你可能会遇到一个麻烦。 那就是jmeter的变量值不能跨线程组传递。 看,官方就已经给出了解释: 这个不是jmeter的…

机器学习——识别足球和橄榄球

一、选题的背景 橄榄球起源于足球,二者即相似又有所区别。计算机技术发展至今,AI技术也有了极大的进步,通过机器学习不断的训练,AI对于足球和橄榄球的识别能力可以帮助人们对足球和橄榄球的分辨。机器学习是一种智能技术&#xff…

虚拟机使用docker安装MySql出现的问题,Navicat连不上MySql

文章目录 一、问题引入 二、问题分析 三、问题解决 ​四、总结 一、问题引入 今天是学习谷粒商城的第一天,既然是第一天,肯定就是先对项目先有个基本的了解,比如是项目所用到的技术栈,项目整体的架构等,还对分布…

操作系统闲谈09——内存管理算法

操作系统闲谈09——内存管理算法 Buddy伙伴系统 假设存在一段连续的页框,阴影部分表示已经被使用的页框,现在需要申请一个连续的5个页框。这个时候,在这段内存上不能找到连续的5个空闲的页框,就会去另一段内存上去寻找5个连续的页…

华为OD机试真题B卷 JavaScript 实现【乱序整数序列两数之和绝对值最小】,附详细解题思路

一、题目描述 给定一个随机的整数(可能存在正整数和负整数)数组 nums,请你在该数组中找出两个数,其和的绝对值(|nums[x]nums[y]|)为最小值,并返回这个两个数(按从小到大返回)以及绝对值。 每种…

Android 行业就业难! 我是否该负重前行~

不知从何时开始,互联网市场岗位开始以收缩趋势进行发展,使得不少互联网行业的从业者面临者工作难找的难题,对于我们开发人群来说很不友好。 以前可以靠着跳槽实现涨薪梦,而如今是能不动就不动,能稳住是最好。 为什么这…

Docker——安装MySQL

一、安装并拉取MySQL镜像 先把docker启动起来 systemctl restart docker systemctl status docker 安装MySQL docker search mysql拉取镜像, 如果拉取不成功或者显示超时,可以去配置加速镜像源。 二、查看本地镜像并启动MySQL 但是光有镜像没有把镜像…

Redis面试之数据类型及底层原理

废话不多说直接上类型 string(字符串) hash(哈希) list(列表) set(集合) zset(有序集合) stream(流) geospatial(地…

CRM软件有哪些?这9款值得推荐

业内有一句流传已久的话:你的左手不知道你的右手在做什么。同一个企业内部,不同部门之间往往存在信息不同步,数据不对称的情况,比如销售和营销部门关于某个市场活动所带来的效果产生分歧。CRM软件的存在就可以解决这类问题。 在正…

实验4 Cache性能分析【计算机系统结构】

实验4 Cache性能分析【计算机系统结构】 前言推荐实验四 Cache性能分析1 实验目的2 实验平台3 实验内容和步骤3.1 Cache容量对不命中率的影响3.2 相联度对不命中率的影响3.3 Cache块大小对不命中率的影响3.4 替换算法对不命中率的影响 4 实验总结与心得5 请思考 最后 前言 202…

8年测试工程师分享,我是怎么开展性能测试的(基础篇)

第一节 测试的一般步骤 性能测试的工作是基于系统功能已经完备或者已经趋于完备之上的,在功能还不够完备的情况下没有多大的意义(后期功能完善上会对系统的性能有影响,过早进入性能测试会出现测试结果不准确、浪费测试资源)&…