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

news2024/11/14 16:35:35

目录

一、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.coloradmin.cn/o/2237966.html

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

相关文章

【c++篇】:栈、队列、优先队列:容器世界里的秩序魔法 - stack,queue与priority_queue探秘

✨感谢您阅读本篇文章,文章内容是个人学习笔记的整理,如果哪里有误的话还请您指正噢✨ ✨ 个人主页:余辉zmh–CSDN博客 ✨ 文章所属专栏:c篇–CSDN博客 文章目录 前言一.容器stack1.介绍2.成员函数3.模拟实现4.注意事项 二.容器qu…

实现uniapp-微信小程序 搜索框+上拉加载+下拉刷新

pages.json 中的配置 { "path": "pages/message", "style": { "navigationBarTitleText": "消息", "enablePullDownRefresh": true, "onReachBottomDistance": 50 } }, <template><view class…

无人机培训机型有哪些?CAAC考证选3类还是4类

无人机培训是一个涵盖多个方面的综合性过程&#xff0c;旨在培养具备无人机操作技能和相关知识的人才。 无人机培训机型 无人机培训通常涵盖多种机型&#xff0c;以满足不同领域和应用场景的需求。常见的无人机培训机型包括&#xff1a; 1. 多旋翼无人机&#xff1a;也称为多…

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

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

[极客大挑战 2019]PHP 1

[极客大挑战 2019]PHP 1 审题 猜测备份在www.zip中&#xff0c;输入下载文件。 知识点 反序列化 解题 查看代码 看到index.php中包含了class.php,直接看class.php中的代码 查看条件 当usernameadmin&#xff0c;password100时输出flag 构造反序列化 输入select中&#…

C++面试基础知识:排序算法 C++实现

上周实习面试&#xff0c;手撕代码快排没写出来&#xff0c;非常丢人&#xff0c;把面试官都给逗笑了。 基础不牢&#xff0c;地动山摇&#xff0c;基础的算法还是要牢记于心的。 插入排序 分为有序区和无序区&#xff0c;每次从无序区中选出一个&#xff0c;放到有序区域中。…

yarn报错`warning ..\..\package.json: No license field`:已解决

出现这个报错有两个原因 1、项目中没有配置许可证 在项目根目录package.json添加 {"name": "next-starter","version": "1.0.0",# 添加这一行"license": "MIT", }或者配置私有防止发布到外部仓库 {"priv…

批量缓存模版

批量缓存模版 缓存通常有两种使用方式&#xff0c;一种是Cache-Aside&#xff0c;一种是cache-through。也就是旁路缓存和缓存即数据源。 一般一种用于读&#xff0c;另一种用于读写。参考后台服务架构高性能设计之道。 最典型的Cache-Aside的样例&#xff1a; //读操作 da…

亚信安全并购亚信科技交易正式完成

亚信安全与亚信科技联合宣布&#xff0c;亚信安全正式完成对亚信科技的控股权收购&#xff0c;由此&#xff0c;规模近百亿的中国最大的软件企业之一诞生&#xff01;双方将全面实现公司发展战略&#xff0c;以及优势能力与资源的深度融合&#xff0c;形成业界独有的“懂网、懂…

MybatisPlus入门(十)MybatisPlus-逻辑删除和多记录操作

一、Mybatis-Plus 多记录操作 按照主键删除多条记录 List<Long> ids Arrays.asList(new Long[]{2,3}) userDao.deleteBatchIds(ids); 示例代码如下: Testvoid testDelete(){//删除指定多条数据List<Long> list new ArrayList<>();list.add(14025513424818…

【css】overflow: hidden效果

1. 不添加overflow: hidden 1.1 效果 上面无圆角 1.2 代码 <template><view class"parent"><view class"child1">child1</view><view class"child2">child2</view></view></template><…

「QT」几何数据类 之 QPolygonF 浮点型多边形类

✨博客主页何曾参静谧的博客&#x1f4cc;文章专栏「QT」QT5程序设计&#x1f4da;全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasolid…

架构篇(04理解架构的演进)

目录 学习前言 一、架构演进 1. 初始阶段的网站架构 2. 应用服务和数据服务分离 3. 使用缓存改善网站性能 4. 使用应用服务器集群改善网站的并发处理能力 5. 数据库读写分离 6. 使用反向代理和CDN加上网站相应 7. 使用分布式文件系统和分布式数据库系统 8. 使用NoSQL和…

OpenCV基础05_GUI和PyMsql

目录 一、PySimpleGUI 1、布局和窗口 2、文本框组件 3、视频处理 4、图片处理 二、pymsql 1、数据库操作 2、数据采集 3、人脸识别 一、PySimpleGUI PySimpleGUI 是一个用于简化 GUI 编程的 Python 包&#xff0c;它封装了多种底层 GUI 框架&#xff08;如 tkinter、…

ModuleNotFoundError: No module named ‘_ssl‘ centos7中的Python报错

报错 ModuleNotFoundError: No module named ‘_ssl’ 解决步骤&#xff1a; 1.下载openssl wget https://www.openssl.org/source/openssl-3.0.7.tar.gz tar -zxvf openssl-3.0.7.tar.gz cd openssl-3.0.72.编译安装 ./config --prefix/usr/local/openssl make make install3…

外呼系统只需这 3 种功能,电销效率快速提升

在当今竞争激烈的商业环境中&#xff0c;电销团队面临着诸多挑战。如何提高电销效率&#xff0c;成为了企业关注的焦点。今天&#xff0c;小编就给大家介绍&#xff0c;沃创云三种外呼系统功能&#xff0c;让你的电销效率快速提升。 一、智能拨号功能 传统的电销方式中&#x…

18. Mouse 鼠标、KeyBoard 键盘和 Action 消息事件处理

在本节的例子中&#xff0c;会自定义很多UI控件实现不同的事件响应&#xff0c;如下图所示&#xff1a; IOKit 事件框架 事件流程 OS X的事件依赖 IOKit 框架&#xff0c;事件发生后首先会传递到IOKit框架中处理&#xff0c;然后通知Window Server服务层处理&#xff0c;由…

C# 实现对指定句柄的窗口进行键盘输入的实现

在C#中实现对指定句柄的窗口进行键盘操作&#xff0c;可以通过多种方式来实现。以下是一篇详细的指南&#xff0c;介绍如何在C#中实现这一功能。 1. 使用Windows API函数 在C#中&#xff0c;我们可以通过P/Invoke调用Windows API来实现对指定窗口的键盘操作。以下是一些关键的…

Spring Plugin与策略模式:打造动态可扩展的应用

目录 一、策略模式 二、Spring Plugin 2.1 Spring Plugin 实现策略模式开发 2.2 策略模式优缺点 三、Spring Plugin 原理 一、策略模式 策略模式是一种设计模式&#xff0c;它允许程序在运行中动态的选择不同的行为方式进行动态执行。策略模式的核心思想是将行为封装在一个个…

Word大珩助手:超大数字怎么读?35位数字?69位数字?

俄罗斯日前对谷歌开出了20000000000000000000000000000000000&#xff08;35位数字&#xff09;美元的罚款 这一数字远超全球GDP总和&#xff0c;消息一出很快就登上热搜。 面对这样一个庞大的数字&#xff0c;人们不禁好奇&#xff0c;这样的数字该如何读出来&#xff1f; …