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

news/2024/11/30 9:40:37/

文章目录

  • 安装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.ppmy.cn/news/420737.html

相关文章

第六章 番外篇:webdataset

参考教程: https://github.com/pytorch/pytorch/issues/38419 https://zhuanlan.zhihu.com/p/412772439 https://webdataset.github.io/webdataset/gettingstarted/ 文章目录 背景WebDatasetwebdataset的生成webdataset的加载示例代码 背景 训练数据通常是以个体的…

WWDC2023 Metal swift 头显ARKit支持c c++ 开发

1 今年WWDC,我们看见了苹果的空间计算设备,visionOS也支持了c c API. 这有什么好处呢,不是说能够吸引更多c c开发者加入苹果开发者阵营,而是我们过去的很多软件,可以轻松对接到苹果的头显设备,让我们的软件…

大模型 Transformer介绍-Part1

众所周知,transformer 架构是自然语言处理 (NLP) 领域的一项突破。它克服了 seq-to-seq 模型(如 RNN 等)无法捕获文本中的长期依赖性的局限性。事实证明,transformer 架构是 BERT、GPT 和 T5 及其变体等革命性架构的基石。正如许多…

手机客户端添加设备时需要扫描二维码,如何查找二维码

扫描设备机身上的二维码。如果设备机身上没有二维码,可登录设备扫描: 摄像机网页界面: 配置>网络配置>宇视云 网络视频录像机显示器/网页界面: 网络配置>宇视云 一体机:系统配置>网络配置>宇视云

深入理解Java虚拟机jvm-运行时数据区域(基于OpenJDK12)

运行时数据区域 运行时数据区域程序计数器Java虚拟机栈本地方法栈Java堆方法区运行时常量池直接内存 运行时数据区域 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域 有各自的用途,以及创建和销毁的时间,有的…

Python二维码扫描

模块准备 1.pyzbar pip install pyzbar 2.PIL 注意:PIL只支持Python2,所以我们需要安装Pillow pip install Pillow 代码示例 from PIL import Image import pyzbar.pyzbar as pyzbardef QRcode_message(image):img Image.open(image) # 读取图片…

【01Studio MaixPy AI K210】14.二维码识别

目录 导包: image库 例程: 导包: import sensor,lcd,time image库 #查找 roi 区域内的所有二维码并返回一个 image.qrcode 的对象列表。 image.find_qrcodes([roi])#返回一个矩形元组(x,y,w,h) qrcode.rect()#返…

js打开手机摄像头实现扫描二维码功能

js打开手机摄像头 在js中使用navigator.getUserMedia这个api 可以点击查看api的使用navigator.getUserMedia 这个api是结合https协议使用的,在http协议中摄像头是无法打开的 var video document.querySelector(video); navigator.getUserMedia({audio: false,vid…