开发者

docker拉取MySQL8.0镜像以及安装的完整步骤

开发者 https://www.devze.com 2025-03-27 11:06 出处:网络 作者: €☞扫地僧☜€
目录一、docker安装mysql镜像搜索images拉取MySQL镜像二、数据挂载在/root/mysql/conf中创建 *.cnf 文件创建容器,将数据,日志,配置文件映射到本机检查MySQL是否启动成功:三、DBeaver数据库连接问题一、Public Key R
目录
  • 一、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登录的权限
  • 四、删除docker镜像MySQL
    • 查找镜像
      • 删除镜像
      • 五、docker删除容器
        • 暂停正在运行MySQL容器
          • 删除MySQL容器
          • 总结

            一、docker安装MySQL镜像

            搜索images

            docker search mysql 
            

            docker拉取MySQL8.0镜像以及安装的完整步骤

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

            docker拉取MySQL8.0镜像以及安装的完整步骤

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

            拉取MySQL镜像

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

            docker拉取MySQL8.0镜像以及安装的完整步骤

            拉取MySQL镜像成功。

            二、数据挂载

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

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

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

            touchandroid 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

            docker拉取MySQL8.0镜像以及安装的完整步骤

            三、DBeaver数据库连接

            docker拉取MySQL8.0镜像以及安装的完整步骤

            连接DBeaver常见的报错:

            问题一、Public Key Retrieval is not allowed

            问题图片:

            docker拉取MySQL8.0镜像以及安装的完整步骤

            原因:

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

            处理:

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

            docker拉取MySQL8.0镜像以及安装的完整步骤

            再次连接:

            docker拉取MySQL8.0镜像以及安装的完整步骤

            问题二、连接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容器密码不一致,导致登录不成功。

            docker拉取MySQL8.0镜像以及安装的完整步骤

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

            进入容器中的 MySQL

            docker exec -it mysql mysql -u ropythonot -p

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

            docker拉取MySQL8.0镜像以及安装的完整步骤

            步骤 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:

            docker拉取MySQL8.0镜像以及安装的完整步骤

            验证用户身份的插件名称

            SELECT user, host, plugin FROM mysql.user

            docker拉取MySQL8.0镜像以及安装的完整步骤

            mysql_native_password:作为MySQL之前的默认身份验证插www.devze.com件,很多老版本的客户端和工具默认支持这个插件。因此,对于一些旧的应用程序和库,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拉取MySQL8.0镜像以及安装的完整步骤

            五、docker删除容器

            暂停正在运行MySQL容器

            docker stop 343ee69c170d

            删除MySQL容器

            docker rm 343ee69c170d

            docker拉取MySQL8.0镜像以及安装的完整步骤

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

            docker拉取MySQL8.0镜像以及安装的完整步骤

            总结

            到此这篇关于docker拉取MySQL8.0镜像以及安装的文章就介绍到这了,更多相关docker拉取MySQL8.0镜像及安装内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!

            0

            精彩评论

            暂无评论...
            验证码 换一张
            取 消

            关注公众号