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;

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

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

MySQL是一个流行的开源关系型数据库管理系统,用于存储、检索和管理大量的数据。截至我所知的信息,MySQL的最新稳定版本并不是8.4.2,而是8.0系列。因此,我将介绍如何在常见的操作系统上安装MySQL 8.0版本。如果您确实需要安装8.4.2版本,请检查是否有这个版本的官方发布,并遵循相应的安装指南。 在Linux系统上安装MySQL 8.0的步骤大致如下: 1. 添加MySQL仓库: 在基于Debian的系统(如Ubuntu)上,您可以使用以下命令添加官方MySQL仓库: ``` wget https://dev.mysql.com/get/mysql-apt-config_0.8.14-1_all.deb dpkg -i mysql-apt-config_0.8.14-1_all.deb ``` 在基于Red Hat的系统(如CentOS)上,您可以使用以下命令添加官方MySQL仓库: ``` sudo yum install https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm ``` 2. 安装MySQL服务器: 在添加了MySQL仓库之后,您可以使用包管理器安装MySQL服务器。对于基于Debian的系统,使用以下命令: ``` sudo apt-get update sudo apt-get install mysql-server ``` 对于基于Red Hat的系统,使用以下命令: ``` sudo yum install mysql-community-server ``` 3. 启动MySQL服务: 安装完成后,您可以使用以下命令启动MySQL服务: ``` sudo systemctl start mysqld ``` 4. 查找临时生成的root密码: 在首次启动MySQL服务器时,它会自动生成一个临时的root密码,您可以使用以下命令查看该密码: ``` sudo grep 'temporary password' /var/log/mysqld.log ``` 5. 安全设置MySQL: 使用上面获的临时密码登录MySQL,然后运行安全安装脚本来设置root密码、移除匿名用户、禁止root远程登录等: ``` sudo mysql_secure_installation ``` 6. 登录MySQL: 完成安全设置后,您可以使用新设置的密码登录MySQL: ``` mysql -u root -p ``` 对于Windows系统,您可以直接下载MySQL Community Server的Windows安装程序,并执行以下步骤: 1. 运行下载的安装程序。 2. 选择安装类型,例如“典型”或“自定义”。 3. 按照安装向导的指示完成安装。 4. 启动MySQL服务,并可能需要设置root用户的密码。 在Mac OS上,您可以使用Homebrew安装MySQL: 1. 首先安装Homebrew(如果尚未安装)。 2. 使用Homebrew安装MySQL: ``` brew update brew install mysql ``` 3. 启动MySQL服务: ``` brew services start mysql ``` 请注意,上述步骤是概括性的,并且具体的命令可能会根据不同的MySQL版本或操作系统版本有所变化。在进行安装之前,请务必查看官方文档以获最准确的安装指南。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

€☞扫地僧☜€

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值