当前位置: 首页 > news >正文

docker配置mysql遇到的问题:网络连接超时、启动mysql失败、navicat无法远程连接mysql

目录

1.网络超时

方式1. 网络连接问题

方式2. Docker镜像源问题

 方式3.使用国内镜像源

2.启动mysql镜像失败

3.navicat无法远程连接mysql


1.网络超时

安装MySQL时出现超时问题,可能由多种原因导致:

方式1. 网络连接问题

  • 原因:网络不稳定或速度慢,导致下载MySQL镜像或软件包时超时。

  • 解决方法

    • 检查网络连接,确保网络稳定。

    • 切换到国内镜像源,如使用阿里云的Docker镜像加速器,以提高下载速度。

方式2. Docker镜像源问题

  • 原因:使用国外的Docker镜像源时,访问速度很慢,可能会因为网络问题导致下载超时。

  • 解决方法

配置国内的Docker镜像加速器,如阿里云镜像加速器:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://<your-mirror-address>.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

 方式3.使用国内镜像源

如果没有阿里云的镜像加速器,就使用国内的docker镜像源来拉取

国内常用的Docker镜像加速器地址(无需注册,直接配置):

镜像源加速器地址
网易https://hub-mirror.c.163.com
腾讯云https://mirror.ccs.tencentyun.com
中科大https://docker.mirrors.ustc.edu.cn
Docker官方中国源https://registry.docker-cn.com
百度云https://mirror.baidubce.com

通过编辑 /etc/docker/daemon.json 文件(若文件不存在则创建)来配置镜像源(可配置多个),示例如下:

{"registry-mirrors": ["https://阿里云专属加速器地址.mirror.aliyuncs.com",  // 替换为你的阿里云地址"https://hub-mirror.c.163.com","https://mirror.ccs.tencentyun.com"]
}
# 重启 Docker 服务
sudo systemctl daemon-reload
sudo systemctl restart docker

2.启动mysql镜像失败

sudo docker run --name mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-p 3306:3306 \
-d mysql:5.7 \
-v /mydata/mysql/conf:/etc/mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql

查看容器启动失败(exited),使用 docker logs mysql查看错误信息

从新的日志信息可知,MySQL 容器启动失败是因为 mysqld 无法读取 /etc/mysql/conf.d/ 目录,错误码显示该目录不存在。我们的命令指定的配置文件路径是/etc/mysql/,而容器读取的配置文件路径是/etc/mysql/conf.d/。

在这一行-v /mydata/mysql/conf:/etc/mysql,我们将主机路径/mydata/mysql/conf挂载到容器路径/etc/mysql下,但实际上容器配置在/etc/mysql/conf.d/目录下。

修改启动的配置文件

docker run -d \--name mysql \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=your_password \
-v /mydata/mysql/conf:/etc/mysql/conf.d \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
mysql:5.7

启动成功

3.navicat无法远程连接mysql

这个错误表明,你的客户端尝试通过 IP 地址连接到 MySQL 服务器,但服务器拒绝了这个请求。这是因为在 MySQL 中,用户权限是与客户端的 IP 地址绑定的。如果用户 root 没有被授权从  这个 IP 地址进行连接,就会出现这个错误。

docker start mysql 
docker exec -it mysql bash
mysql -uroot -p123456
grant all privileges on *.* to root@'%' identified by '123456' with grant option;
flush privileges;

相关文章:

  • Nginx技术培训文档
  • 【Linux网络#1】:网络基础知识
  • strings.TrimLeft 使用详解
  • ssm乡村合作社商贸网站设计与实现(源码+lw+部署文档+讲解),源码可白嫖!
  • 网络流之最大流(Dinic)
  • 26考研——指令系统_CISC 和 RISC 的基本概念(4)
  • [详细无套路]MDI Jade6.5安装包下载安装教程
  • setup语法糖
  • AudioVideoMerger 下载与使用
  • ZBrush2025建模软件下载 ZBrush中文版免费下载 ZBrush版本大全
  • c++初始化数组
  • python输出
  • 利用知识图谱提升测试用例生成精准性:基于Graphiti与DeepSeek-R1的实战指南
  • 23种设计模式-行为型模式之迭代器模式(Java版本)
  • Redis数据结构SDS,IntSet,Dict
  • 【读论文】面向小目标的轻型变电设备缺陷检测算法
  • Python文件操作及数据库交互(Python File Manipulation and Database Interaction)
  • cron定时任务
  • element ui el-col的高度不一致导致换行
  • 论文阅读:2024 arxiv HybridFlow: A Flexible and Efficient RLHF Framework
  • 多家媒体及网红走进云南曲靖沾益:感受珠江源头
  • 酒店保洁员调包住客港币,海南官方通报:成立调查组赴属地调查
  • 俄军方:已完成库尔斯克地区全面控制行动
  • 中国海警登临铁线礁开展维权行动并展示五星红旗
  • 再放宽!新版市场准入负面清单发布,无人驾驶航空器、电子烟等新业态被纳入
  • 第四届全民阅读大会·阅读权益保障论坛举办