docker 拉取MySQL8.0镜像以及安装

目录

一、docker安装MySQL镜像

搜索images

拉取MySQL镜像

二、数据挂载

在/root/mysql/conf中创建 *.cnf 文件

创建容器,将数据,日志,配置文件映射到本机

检查MySQL是否启动成功:

三、DBeaver数据库连接

问题一、Public Key Retrieval is not allowed

问题二、连接MySQL时,报Access denied for user

步骤 1:确保您使用的是正确的密码

步骤 2:尝试无密码登录(如果root账户没有设置密码)

步骤3: root用户没有从localhost登录的权限

进入容器中MySQL:

更改密码:

允许 root 用户从任何 IP 地址连接:

刷新权限:

退出 MySQL:

测试新密码:

验证用户身份的插件名称

四、删除docker镜像MySQL

查找镜像

删除镜像

五、docker删除容器

暂停正在运行MySQL容器

删除MySQL容器


一、docker安装MySQL镜像

搜索images

docker search mysql 

我配置了阿里云镜像加速器,找不到mySQL镜像.

由于不知道名原因很多国内拉取镜像都下架了docker镜像导致找不到MySQL镜像;

拉取MySQL镜像

docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/mysql:8.0

拉取MySQL镜像成功。

二、数据挂载

创建本地目录用于挂载mysql数据和配置

mkdir -p /root/mysql/data /root/mysql/logs /root/mysql/conf

在/root/mysql/conf中创建 *.cnf 文件

touch my.cnf

创建容器,将数据,日志,配置文件映射到本机

docker run -p 3306:3306 --name mysql -v /root/mysql/conf:/etc/mysql/conf.d -v /root/mysql/logs:/logs -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=yourpassword  -d swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/mysql:8.0

  • docker run:这是创建新容器的 Docker 命令。
  • -p 3306:3306:这将容器内部的 MySQL 服务端口(3306)映射到宿主机的同一端口,允许您从宿主机或其他网络中的机器访问 MySQL 服务。
  • --name mysql:这为新容器指定了一个名称,这里是 mysql
  • -v /root/mysql/conf:/etc/mysql/conf.d:这将宿主机上的 /root/mysql/conf 目录挂载到容器内部的 /etc/mysql/conf.d 目录,用于存储 MySQL 配置文件。
  • -v /root/mysql/logs:/logs:这将宿主机上的 /root/mysql/logs 目录挂载到容器内部的 /logs 目录,用于存储 MySQL 日志文件。
  • -v /root/mysql/data:/var/lib/mysql:这将宿主机上的 /root/mysql/data 目录挂载到容器内部的 /var/lib/mysql 目录,用于存储 MySQL 数据文件。这确保了数据的持久化,即使容器被删除,数据也不会丢失。
  • -e MYSQL_ROOT_PASSWORD=yourpassword:这设置了环境变量,用于定义 MySQL root 用户的密码。请确保使用一个强密码来提高安全性。
  • -d swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/mysql:8.0:这指定了容器应在后台运行,并使用指定的 MySQL 镜像。这里的镜像路径指向华为云 SWR 上的 MySQL 8.0 镜像.

检查MySQL是否启动成功:

docker ps -a

三、DBeaver数据库连接

连接DBeaver常见的报错:

问题一、Public Key Retrieval is not allowed

问题图片:

原因:

Public Key Retrieval is not allowed:原因是:通常出现在使用 SSL 连接到 MySQL 数据库时。这个错误表明 MySQL 服务器配置为要求 SSL 连接,但是客户端(在这种情况下是 DBeaver)没有提供正确的证书或密钥。

处理:

找到:allowPublicKeyRetrieval驱动属性,把false改为true,如图所示:

再次连接:

问题二、连接MySQL时,报Access denied for user

报:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

意味着您尝试使用MySQL的root用户登录,但是提供的密码不正确,或者root用户没有从localhost登录的权限。

步骤 1:确保您使用的是正确的密码

确认您记得的root密码是正确的。如果您不确定密码是否正确,您可能需要重置它。

在你保证密码正确情况下,如果出现这个错误,可能原因是:之前你执行docker挂载MySQL容器,在/root/mysql/data下已经有之前缓冲数据,执行的新docker run,由于两次挂载MySQL容器密码不一致,导致登录不成功。

解决方案:删除/root/mysql/data目录下文件,执行删除docker挂载MySQL容器后,然后执行docker run 挂载MySQL容器;

进入容器中的 MySQL

docker exec -it mysql mysql -u root -p

输入密码:*********

步骤 2:尝试无密码登录(如果root账户没有设置密码)

如果root账户没有设置密码,或者您不确定是否设置了密码,可以尝试无密码登录:

在/root/mysql/conf目录下,打开my.cnf配置,加上:

--skip-grant-tables

这里不做过多解释,如需详情了解操作,各位自行百度一下;

步骤3: root用户没有从localhost登录的权限
进入容器中MySQL:

docker exec -it mysql mysql -u root -p

输入密码:*******,登录到 MySQL 后,

更改密码

使用以下命令更改 root 用户的密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

new_password:输入自己的密码;

允许 root 用户从任何 IP 地址连接:

ALTER USER 'root'@'%' IDENTIFIED BY 'new_password';

替换 'new_password' 为您想要设置的新密码。

刷新权限

更改密码后,执行以下命令使更改生效:

FLUSH PRIVILEGES;

退出 MySQL

使用以下命令退出 MySQL 客户端:

EXIT;

测试新密码

为了验证新密码是否生效,您可以尝试再次登录 MySQL:

docker exec -it mysql mysql -u root -p

当提示时,输入您新设置的密码。

请注意,将密码直接包含在命令行中(如 -p'new_password')可能会因为引号使用不当而导致问题。通常建议在命令行中只使用 -p 参数,然后在提示时输入密码。

使用连接MySQL工具连接服务器MySQL:

验证用户身份的插件名称

SELECT user, host, plugin FROM mysql.user

mysql_native_password:作为MySQL之前的默认身份验证插件,很多老版本的客户端和工具默认支持这个插件。因此,对于一些旧的应用程序和库,mysql_native_password可能会有更好的兼容性。

caching_sha2_password:从MySQL 8.0开始,它成为了默认的身份验证插件。尽管它提供了更高的安全性,但一些旧版客户端可能不支持该插件。在这种情况下,需要更新客户端或驱动程序才能兼容。

四、删除docker镜像MySQL

查找镜像

docker images | grep mysql

删除镜像

一旦您知道了要删除的 MySQL 镜像的名称或 ID,可以使用以下命令删除它:

docker image rm 1eba4c9bcaa8

强制删除命令:docker image rm -f mysql

五、docker删除容器

暂停正在运行MySQL容器

docker stop 343ee69c170d

删除MySQL容器

docker rm 343ee69c170d

注意:343ee69c170d是docker中MySQL容器ID;

本文章到处结束,如有缺陷,还望各位多提宝贵意见!!!!

希望本文章对各位有帮助!!!!

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

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

相关文章

云防护单节点2T抗攻击能力意味着什么?

随着互联网的发展,DDoS攻击的规模和频率不断增加,对企业和个人用户的网络服务造成了严重威胁。云防护服务作为一种高效的DDoS防护手段,逐渐成为许多企业的首选。本文将重点讨论云防护单节点2T(太比特每秒)抗攻击能力的…

VUE3中Element table表头动态展示合计信息(不是表尾合计)

一、背景 原型上需要对两个字段动态合计,输出摘要信息 原先想到是的Element的 :summary-method,发现不是动态,所以换监听来实现 二、vue代码 <el-table v-model="loading" :data="itemList"><el-table-column label="药品名称" pro…

9. 基于 Redis 实现排行榜功能

在现代应用场景中&#xff0c;排行榜&#xff08;leaderboard&#xff09;广泛应用于游戏、社交网络、电子商务等领域&#xff0c;通过排行榜来展示用户排名、评分或成就等数据。而Redis作为一个高性能的内存数据库&#xff0c;特别擅长处理需要快速查询和更新的数据&#xff0…

让直播流量不再是“数字游戏”!本地生活+AI数字人的共赢方式 !

如今&#xff0c;数字化浪潮席卷全球&#xff0c;直播行业竞争愈发激烈。许多人都希望能够将自己直播间所产生的热度实时变现&#xff0c;但总是没有头绪或者是把握不住机会&#xff0c;就这样让直播流量从白白流失。即便是有人使用上创新型智能AI数字人系统&#xff0c;也少有…

jmeter常用配置元件介绍总结之前置处理器、测试片段

系列文章目录 安装jmeter jmeter常用配置元件介绍总结之前置处理器、测试片段 6.前置处理器6.1用户参数6.2取样器超时6.3.测试片段6.4JSR223 PreProcessor6.5.JDBC PreProcessor 6.前置处理器 在取样器请求之前执行的操作&#xff0c;优先级比取样器高&#xff0c;用来处理一些…

Netty实现WebSocket Client三种典型方式

一、简单版本 package com.ptc.ai.box.biz.relay.client;import io.netty.bootstrap.Bootstrap; import io.netty.channel.Channel; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelFutureListener; import io.netty.channel.ChannelHandlerContext;…

前端代码分析题(选择题、分析题)——this指向、原型链分析

this指向 普通函数&#xff1a;this 的指向由调用方式决定&#xff0c;可以是全局对象、调用该函数的对象&#xff0c;或者显式指定的对象。箭头函数&#xff1a;this 的指向在定义时确定&#xff0c;始终继承自外层函数作用域的 this&#xff0c;不会被调用方式影响。 var obj…

Linux下进程链接结构,命令行参数,环境变量

bash 是一种 shell。在 Linux 系统中&#xff0c;当我们在终端输入命令时&#xff0c;通常是在一个 shell 环境下进行的。如果这个 shell 是 bash&#xff0c;那么所有命令行执行的命令都是 bash 的子进程。 1.Linux下进程链接结构 进程链接补充知识&#xff1a; 所有进程都…

Android studio中关于printf和print和println的区别

print:为一般输出&#xff0c;同样不能保留精度格式转化&#xff0c;也不能换行输出&#xff0c;输出需要加上换行符printf:常用于格式转换&#xff0c;但需要注意不是换行输出&#xff0c;只用于精度转换&#xff0c;跟C语言的printf一样的&#xff0c;输出需要加上换行符prin…

GISBox VS ArcGIS:分别适用于大型和小型项目的两款GIS软件

在现代地理信息系统&#xff08;GIS&#xff09;领域&#xff0c;有许多大家耳熟能详的GIS软件。它们各自具有独特的优势&#xff0c;适用于不同的行业需求和使用场景。在众多企业和开发者面前&#xff0c;如何选择合适的 GIS 软件成为了一个值得深入思考的问题。今天&#xff…

京准同步:GPS北斗卫星授时服务器发展趋势介绍

京准同步&#xff1a;GPS北斗卫星授时服务器发展趋势介绍 京准同步&#xff1a;GPS北斗卫星授时服务器发展趋势介绍 GPS北斗卫星授时服务器的发展趋势紧密围绕着不断提升的时间同步精度、可靠性、安全性&#xff0c;以及适应广泛应用场景的需求展开&#xff0c;以下是卫星授时…

精深之道:在专业领域迅速铸就影响力

在知识爆炸的时代专业化已成为各行各业竞争的关键词。要想在专业领域内快速实现影响力&#xff0c;不仅需要深厚的专业知识积累&#xff0c;还需要独到的见解、创新的思维以及有效的传播策略。本文旨在探讨如何在专业领域内迅速建立并扩大个人或组织的影响力&#xff0c;成为行…

区块链:Raft协议

Raft 协议是一种分布式共识机制&#xff0c;这种机制适用于网络中存在一定数量的故障节点&#xff0c;但不考虑“恶意”节点的情况&#xff0c;所以更适合作为私有链和联盟链的共识算法。 在此协议中&#xff0c;每个节点有三种状态&#xff1a; 候选者 &#xff0c;可以被选…

微服务(二)

目录 1.网关路由 1.1.认识网关 1.2.快速入门 1.2.1.引入依赖 1.2.2.启动类 1.2.3.配置路由 1.3.路由过滤 2.网关登录校验 2.1.鉴权思路分析 2.2.网关过滤器 2.3.自定义过滤器 2.3.1.自定义GatewayFilter 2.3.2.自定义GlobalFilter 2.4.登录校验 2.4.1.JWT工具 …

操作系统(12) (并发(3)------哲学家进餐问题(Dining Philosophers Problem)解决方案/管程(monitor))

目录 哲学家进餐问题描述 解决方案 1&#xff1a; 解决方案 2&#xff1a;信号量实现 解决方案 3&#xff1a;使用 Monitor 的实现 1. 监视器的组成部分 2. 监视器的优点 3. 使用监视器解决哲学家进餐问题 4. 使用监视器的优势 5. 监视器的局限性 6. Mesa风格和Hoare风…

ESP32学习笔记_FreeRTOS(1)——Task的创建和使用

摘要(From AI): 本文是基于 FreeRTOS 和 ESP_IDF 的学习笔记&#xff0c;详细讲解了任务管理、优先级设置、任务堆栈监控、看门狗定时器&#xff08;IWDT 和 TWDT&#xff09;等关键功能。内容涵盖任务创建与删除、任务挂起与恢复、时间片轮转调度机制&#xff0c;以及任务看门…

95.【C语言】数据结构之双向链表的头插,头删,查找,中间插入,中间删除和销毁函数

目录 1.双向链表的头插 方法一 方法二 2.双向链表的头删 3.双向链表的销毁 4.双向链表的某个节点的数据查找 5.双向链表的中间插入 5.双向链表的中间删除 6.对比顺序表和链表 承接94.【C语言】数据结构之双向链表的初始化,尾插,打印和尾删文章 1.双向链表的头插 方法…

【Docker容器化技术】docker安装与配置、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库

文章目录 一、Docker的安装与配置1、docker概述2、安装docker3、docker架构4、配置镜像加速器 二、Docker命令1、服务相关命令2、镜像相关命令3、容器相关命令 三、Docker容器数据卷1、数据卷概念及作用2、配置数据卷3、配置数据卷容器 四、Docker应用部署实战1、部署MySQL2、部…

.netCore WebAPI中字符串加密与解密

In today’s digital landscape, securing sensitive information is more critical than ever. If you’re using ASP.NET Core, you might store configuration settings in appsettings.json. However, hardcoding sensitive data like connection strings or API keys in p…

海外云手机在出海业务中的优势有哪些?

随着互联网技术的快速发展&#xff0c;海外云手机已在出海电商、海外媒体推广和游戏行业都拥有广泛的应用。对于国内的出海电商企业来说&#xff0c;短视频引流和社交平台推广是带来有效流量的重要手段。借助云手机&#xff0c;企业能够更高效地在新兴社交平台上推广产品和品牌…