楼主用docekr安装mysql时,使用navicat连接,发现连接不成功,显示10060或者10061,升级了navicat的版本之后,搜索了好久发现mysql服务没开启,显示端口并未正确映射,以下是解决方案
1. 检查当前运行的 MySQL 容器
首先,检查当前是否有 MySQL 容器在运行,并且是否正确映射了端口。可以使用以下命令查看运行中的容器:
docker ps
通常在安装成功之后,输入docker ps 显示目录挂载如下
然鹅连接不成功一般如下,会发现其中并没有mysql容器,即mysql并没有启动成功
输入 docker ps -a 发现
在status这一栏,显示端口并未映射
通常是因为在启动容器时没有正确指定端口映射。按照以下步骤操作进行解决
2. 停止并移除现有的 MySQL 容器
如果有运行中的 MySQL 容器但端口映射不正确,可以停止并移除该容器:
docker stop 'mysql'
docker rm 'mysql'
3. 启动 MySQL 容器并映射端口
使用以下命令启动 MySQL 容器,并确保映射端口:
docker run --name mysql-server -e MYSQL_ROOT_PASSWORD=1234 -p 3306:3306 -d mysql:latest
在这个命令中:
- `--name mysql-server` 指定容器的名称。
- `-e MYSQL_ROOT_PASSWORD=1234` 设置 MySQL 的 root 用户密码。
- `-p 3306:3306` 将主机的 3306 端口映射到容器的 3306 端口。
- `-d` 选项使容器在后台运行。
- `mysql:latest` 是 MySQL 镜像的名称和标签。
4. 验证端口映射
再次检查运行中的容器 : docker ps,确保端口已正确映射
输出中应该有类似以下内容,显示端口 3306 已正确映射:
5. 连接到 MySQL 服务器
使用 MySQL 客户端工具连接到运行在 Docker 容器中的 MySQL 服务器。
输入之前设置的 `1234` 作为密码。
欧了~
总结
通过以上步骤,可以确保 MySQL 容器启动并正确映射端口。
如果还不能解决,建议检查一下:
- 确保 Docker 正在运行,并且没有其他应用占用端口 3306。
- 确认 Docker 版本和 MySQL 镜像版本是否兼容。
- 查看 Docker 容器日志,查找可能的错误信息