当前位置: 代码网 > it编程>数据库>Mysql > 真正解决Docker运行MySQL后本地无法访问问题的方法

真正解决Docker运行MySQL后本地无法访问问题的方法

2026年03月10日 Mysql 我要评论
适用系mysql8.0.x/5.6.x一、跟着教程安装1.1 拉取 mysql 镜像docker pull mysql:latest1.2 查看本地镜像使用以下命令来查看是否已安装了 mysql:do

适用系mysql8.0.x/5.6.x

一、跟着教程安装

1.1 拉取 mysql 镜像

docker pull mysql:latest

1.2 查看本地镜像

使用以下命令来查看是否已安装了 mysql:

docker images

1.3 运行容器

安装完成后,我们可以使用以下命令来运行 mysql 容器:

docker run -itd --name mysql8 -p 3308:3306 -e mysql_root_password=123456 mysql

参数说明:

-p 3308:3306 :映射容器服务的 3306 端口到宿主机的 3308 端口,外部主机可以直接通过 宿主机ip:3308 访问到 mysql 的服务。
mysql_root_password=123456:设置 mysql 服务 root 用户的密码。

1.4 安装成功

通过 docker ps 命令查看是否安装成功:

1.5 附加设置

#进入容器
docker exec -it [container id] bash

#登录mysql
mysql -u root -p

alter user 'root'@'localhost' identified by '密码';

#添加远程登录用户
create user '用户名'@'%' identified with mysql_native_password by '密码';
grant all privileges on *.* to '用户名'@'%';

二、报错

2.1 尝试在宿主机本地连接docker的mysql

mysql -h localhost -u root -p 3308 -p

#报错
error 2002 (hy000): can't connect to local mysql server through socket '/tmp/mysql.sock' (2)
mysql -h 127.0.0.1 -u root -p 3308 -p

#报错
error: 2013, lost connection to mysql server at 'reading initial communication packet', system error: 0

要解决上面两个报错,必须要明白docker与宿主通讯的方式。

解决方法:

本地pc->linux->docker,它们的访问路径大概是这样。

首先要获得linux的ip,并确认本地pc能ping通linux机器。如果无法ping通,则无法访问。

我的linux是用vmware虚拟出来的ubuntu,原来虚拟机的上网方式是nat,这时虚拟机能ping通pc的ip,但pc无法ping通虚拟机。暂时找不到解决方法。

将虚拟机的上网方式改为桥接,ip自动获取,一连接就成功。

总结

到此这篇关于真正解决docker运行mysql后本地无法访问问题的方法的文章就介绍到这了,更多相关docker运行mysql本地无法访问内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com