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

 更新时间:2026年03月10日 10:42:54   作者:Lcwai  
MySQL本地登录不上的原因可能包括配置错误、权限问题、服务未启动等,需逐步排查,这篇文章主要介绍了真正解决Docker运行MySQL后本地无法访问问题的方法,文中通过代码介绍的非常详细,需要的朋友可以参考下

适用系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本地无法访问内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • mysql 性能的检查和调优方法

    mysql 性能的检查和调优方法

    我一直是使用mysql这个数据库软件,它工作比较稳定,效率也很高。
    2009-05-05
  • MySQL 更新字段的值为当前最大值加1的解决方案

    MySQL 更新字段的值为当前最大值加1的解决方案

    本文介绍MySQL中通过UPDATE/INSERT结合SELECT语句,将字段值更新为当前最大值加1的方法,涵盖嵌套子查询与自定义变量方案,后者更高效适用于批量操作,感兴趣的朋友跟随小编一起看看吧
    2025-07-07
  • mysql索引使用率监控技巧(值得收藏!)

    mysql索引使用率监控技巧(值得收藏!)

    这篇文章主要给大家介绍了关于mysql索引使用率监控技巧的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用mysql具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • MySQL查看操作记录几种常用的方法

    MySQL查看操作记录几种常用的方法

    在数据库的日常管理中,了解表的操作历史是非常重要的,MySQL提供了多种方式来查看表的操作日志,包括查询日志、慢查询日志以及二进制日志等,这篇文章主要介绍了MySQL查看操作记录几种常用的方法,需要的朋友可以参考下
    2025-09-09
  • MySQL安装详解图文版(V5.5 For Windows)

    MySQL安装详解图文版(V5.5 For Windows)

    这几年一直在用MySQL,并且是Windows+.Net+MySQL的搭配,用MyISAM引擎支持过单表每天千万以上的数据递增,TB级的数据MySQL游刃有余。
    2011-09-09
  • PHP学习之SQL语句快速入门

    PHP学习之SQL语句快速入门

    在学校php过程中,需要用得到的一些语句。比较简单的大家一定要掌握啊。
    2010-03-03
  • 解决Mysql建表时报错invalid ON UPDATE clause for 'create_date' column

    解决Mysql建表时报错invalid ON UPDATE clause for 'create_d

    这篇文章主要介绍了解决Mysql建表时报错invalid ON UPDATE clause for 'create_date' column问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • mysql 多个字段拼接的实例详解

    mysql 多个字段拼接的实例详解

    这篇文章主要介绍了mysql 多个字段拼接的实例详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • 图文详解Ubuntu下安装配置Mysql教程

    图文详解Ubuntu下安装配置Mysql教程

    这篇文章主要以图文结合的方式详细为大家介绍了Ubuntu安装配置Mysql的实现步骤,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • 在MySQL中使用STRAIGHT_JOIN的教程

    在MySQL中使用STRAIGHT_JOIN的教程

    这篇文章主要介绍了在MySQL中使用STRAIGHT_JOIN的教程,包括使用STRAIGHT_JOIN进行一些性能上的优化的技巧,需要的朋友可以参考下
    2015-05-05

最新评论