连接docker里面的mysql失败解决

本文解决在虚拟机的Docker容器中安装最新版MySQL后,使用Navicat连接出现的错误2059。通过启动MySQL容器,进入容器并更新root用户密码,重启MySQL服务,最终实现Navicat成功连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.youkuaiyun.com/BEYOND1118/article/details/81302724

场景:在虚拟机的docker容器中安装latest版本的mysql之后,在宿主机中使用navicat连接虚拟机中的mysql出现下图报错:

2059 : Authentication plugin ‘caching_sha2_password’ cannot be loaded: 

 

解决办法:

1、首先docker ps命令查看正在运行的容器,确保我们想要连接的mysql已经启动,如果没启动使用docker start命令启动(下图查看结果表示已经启动了一个mysql)

2、接着运行docker exec -it b30062adc08c /bin/bash进入mysql容器

3、再接着输入mysql -u root -p命令,然后输入自己的密码,最后输入更新密码语句:ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

4、最后重启mysql再使用navicat连接即可成功

 

 

 

 

### Docker拉取MySQL镜像失败解决方案 当遇到`docker pull mysql`命令执行失败的情况时,可能由多种因素引起。常见的错误原因包括网络连接不稳定、Docker Hub访问受限或是本地配置文件存在问题。 #### 网络问题排查 如果是因为网络问题导致无法正常下载镜像,则建议尝试更换国内加速器来改善情况。可以通过设置环境变量或修改daemon.json文件的方式指定阿里云或其他服务商提供的镜像加速服务[^1]。 ```bash sudo mkdir -p /etc/docker/ sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://your.mirror.url"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker ``` #### 验证Docker安装状态 确保Docker已正确安装并处于最新版本也很重要。旧版可能存在兼容性问题,影响到某些特定标签(tag)的镜像获取效率。更新至稳定版有助于减少此类麻烦的发生概率[^2]。 ```bash # 更新官方源列表 sudo apt-get update && sudo apt-get upgrade -y # 安装或升级Docker引擎 sudo apt install docker-ce docker-ce-cli containerd.io ``` #### 清理缓存重试 有时候残留的数据会干扰新请求的成功完成。清理掉之前不完整的传输记录再做一次pull操作往往能解决问题所在: ```bash docker system prune -a --volumes docker pull mysql:latest ``` 以上方法能够有效应对大部分因外部条件引发的mysql镜像拉取异常状况。对于更复杂的情形则需进一步分析日志信息定位具体成因。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值