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;

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java多线程详解⑤(全程干货!!!)线程安全问题 || 锁 || synchronized

这里是Themberfue 在上一节的最后,我们讨论两个线程同时对一个变量累加所产生的现象 在这一节中,我们将更加详细地解释这个现象背后发生的原因以及该如何解决这样类似的现象 线程安全问题 public class Demo15 {private static int count 0;public …

如何使用RabbitMQ和Python实现广播消息

使用 RabbitMQ 和 Python 实现广播消息的过程涉及设置一个消息队列和多个消费者,以便接收相同的消息。RabbitMQ 的 “fanout” 交换机允许你将消息广播到所有绑定的队列。以下是如何实现这一过程的详细步骤。 1、问题背景 在将系统从Morbid迁移到RabbitMQ时&#x…

【RabbitMQ】04-发送者可靠性

1. 生产者重试机制 spring:rabbitmq:connection-timeout: 1s # 设置MQ的连接超时时间template:retry:enabled: true # 开启超时重试机制initial-interval: 1000ms # 失败后的初始等待时间multiplier: 1 # 失败后下次的等待时长倍数,下次等待时长 initial-interval…

java的类加载机制的学习

一、类加载的过程 一个类被加载到虚拟机内存中开始,到卸载出虚拟机内存为止,整个生命周期分为七个阶段,分别是加载、验证、准备、解析、初始化、使用和卸载。其中验证、准备和解析这三个阶段统称为连接。 除去使用和卸载,就是Ja…

uni-app跨域set-cookie

set-cookie的值是作为一个权限控制的 首先,无论什么接口都会返回一个set-cookie,但未登录时,set-cookie是没有任何权限的 其次,登录接口请求时会修改set-cookie,并且在后续其他接口发起请求时,会在请求头…

让智能体—“正念365”陪你一起“养心”

佛学的“八正道”中,笔者个人观点,“正念”是最适合当代人低门槛练习的一个,因为不需要阅读大量的知识来理解概念,只需要保持对当下的觉察,发现分心了,就不带评价的把注意力拉回到当前的事情上就好。就是佛…

浅析Android Handler机制实现原理

0. 背景描述 Android系统出于对简单、高效的考虑,在设计UI体系时采用了单线程模型,即不会在多个线程中对同一个UI界面执行操作。简单是指单线程模型可以不用考虑和处理在多线程环境下操作UI带来的线程安全问题,高效是指单线程模型下无需通过…

vue 3:监听器

目录 1. 基本概念 2. 侦听数据源类型 1. 监听getter函数 2. 监听 ref 或 reactive 的引用 3. 多个来源组成的数组 4. 避免直接传递值!!! 3. 深层侦听器 4. 立即回调的侦听器 5. 一次性侦听器 6. watchEffect() 7. 暂停、恢复和停止…

沉浸式学习新体验:3D虚拟展厅如何重塑教育格局!

3D虚拟展厅对于教育行业产生了深远的影响,主要体现在以下几个方面: 一、创新教学方式 3D虚拟展厅利用三维技术构建的虚拟展示空间,为教育行业带来了一种全新的教学方式。传统的教学方式往往局限于书本和课堂,而3D虚拟展厅则能够…

【Kafka】Windows+KRaft部署指南

【Kafka】WindowsKRaft部署指南 摘要本地环境说明官网快速开始修改config/kraft/server.properties初始化数据存储目录启动 测试创建topic创建生产者创建消费者 FAQ输入行太长。命令语法不正确。问题描述解决方案 参考资料 摘要 Kafka是一种高吞吐量的分布式发布订阅消息系统&…

面相小白的php反序列化漏洞原理剖析

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文整理反序列化漏洞的一些成因原理 建议学习反序列化之前 先对php基础语法与面向对象有个大体的了解 (我觉得我整理的比较细致,了解这俩是个啥就行) 漏洞实战情况 这个漏洞黑盒几乎不会被发现&am…

景联文科技专业数据标注公司:高质量数据标注推动AI产业发展

在当今数据驱动的时代,高质量的数据标注对于机器学习、自然语言处理(NLP)和计算机视觉等技术领域的发展起着至关重要的作用。 数据标注是指对原始数据进行处理,标记对象的特征,生成满足机器学习训练要求的可读数据编码…

yelp数据集上识别潜在的热门商家

yelp数据集是研究B2C业态的一个很好的数据集,要识别潜在的热门商家是一个多维度的分析过程,涉及用户行为、商家特征和社区结构等多个因素。从yelp数据集里我们可以挖掘到下面信息有助于识别热门商家 用户评分和评论分析 评分均值: 商家的平均评分是反映其…

YOLO11改进 | 融合改进 | C3k2融合ContextGuided 【独家改进, 两种方式】

秋招面试专栏推荐 :深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 本文给大家带来的教程是将YOLO11的C3k2替…

【harbor】离线安装2.9.0-arm64架构服务制作和升级部署

harbor官网地址:Harbor 参考文档可以看这里:部署 harbor 2.10.1 arm64 - 简书。 前提环境准备: 安装docker 和 docker-compose 先拉arm64架构的harbor相关镜像 docker pull --platformlinux/arm64 ghcr.io/octohelm/harbor/harbor-regist…

InfluxDB 2 关闭pprof

背景: Go 语言的 net/http/pprgf包如未配置正确暴露在公网容易引起敏感信息泄漏问题,导致源码等信息泄漏。 influxdb 2 默认是开启pprof的 使用 localhost:8086/debug/pprof/goroutine?debug1 可以看到接口暴露的信息 如何关闭pprof 官方文档&…

CJ/T188-2004 详细介绍

REDISANT 提供互联网与物联网开发测试套件 # 互联网与中间件: Redis AssistantZooKeeper AssistantKafka AssistantRocketMQ AssistantRabbitMQ AssistantPulsar AssistantHBase AssistantNoSql AssistantEtcd AssistantGarnet Assistant 工业与物联网&#xff1…

阿里云k8s-master部署CNI网络插件遇到的问题

问题 按照网络上的部署方法 cd /opt/k8s # 下载 calico-kube-controllers配置文件,可能会网络超时 curl https://docs.projectcalico.org/manifests/calico.yaml -O kubectl apply -f calico.yaml 试了很多次都不行,k8s-master都是Not ready的状态 ca…

Netty篇(学习前言)

目录 一、为什么使用Netty 1. Netty编程相比NIO编程的优势 2. Netty 相比其它网络应用框架的优势 二、让我们走进Netty 1. 简介 2. 设计目标 3. 主要特点 4. Netty的作者 5. Netty 的地位 6. Netty 的优势 五、Netty版本说明 六、Netty架构设计 1. 线程模型基本介绍…

C/C++使用AddressSanitizer检测内存错误

AddressSanitizer 是一种内存错误检测工具,编译时添加 -fsanitizeaddress 选项可以在运行时检测出非法内存访问,当发生段错误时,AddressSanitizer 会输出详细的错误报告,包括出错位置的代码行号和调用栈,有助于快速定位…