真正解决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判断字段是否存在的方法有很多,如使用desc命令、show columns 命令、describe 命令等等,感兴趣的朋友可以参考下
    2014-01-01
  • 深入了解mysql索引

    深入了解mysql索引

    这篇文章主要介绍了mysql索引的相关资料,文中讲解非常细致,帮助大家更好的理解和学习mysql,感兴趣的朋友可以了解下
    2020-07-07
  • 从入门到精通MySQL 数据库索引(实战案例)

    从入门到精通MySQL 数据库索引(实战案例)

    索引是数据库的目录,提升查询速度,主要类型包括BTree、Hash、全文、空间索引,需根据场景选择,建议用于高频查询、关联字段、排序等,避免重复率高或频繁更新字段,本文给大家介绍MySQL 数据库索引实战案例,感兴趣的朋友一起看看吧
    2025-06-06
  • MySQL 实现双向复制的方法指南

    MySQL 实现双向复制的方法指南

    这篇文章主要介绍了MySQL 实现双向复制的方法指南,本文包括:主机配置,从机配置,建立主-从复制,建立双向复制,需要的朋友可以参考下
    2015-03-03
  • MYSQL中DML与DDL常用语句小结

    MYSQL中DML与DDL常用语句小结

    DML是一类用于查询和操作数据的 SQL 语句,DDL是一类用于定义和管理数据库结构及对象的 SQL 语句,本文为大家整理了一些DML与DDL的常用语句,希望对大家有所帮助
    2023-12-12
  • MySQL笔记之视图的使用详解

    MySQL笔记之视图的使用详解

    使用视图的大部分情况是为了保障数据安全性,提高查询效率
    2013-05-05
  • MySQL数据导入导出的三种办法总结

    MySQL数据导入导出的三种办法总结

    当我们需要切换数据库或备份数据时,导入和导出数据库是一个常见的操作,下面这篇文章主要给大家介绍了关于MySQL数据导入导出的三种办法,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-05-05
  • MySQL表列数和行大小限制详解

    MySQL表列数和行大小限制详解

    MySQL在表的列数和行大小方面有一些限制,本文将对这些限制进行详细解释,文中通过代码示例讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-04-04
  • Windows下mysql 5.7 设置区分大小写(敏感),设置默认编码 utf8mb4

    Windows下mysql 5.7 设置区分大小写(敏感),设置默认编码 utf8mb4

    最近需要将Windows下的mysql 5.7设置区分大小写(敏感),设置默认编码 utf8mb4,需要的朋友可以参考下
    2022-10-10
  • 深入解读Mysql查询性能的优化

    深入解读Mysql查询性能的优化

    这篇文章主要介绍了深入解读Mysql查询性能的优化,如果想要优化查询,就需要优化其子任务,要么你就消除其中的一些子任务,要么就减少子任务的执行次数,要么就让子任务运行的更快,需要的朋友可以参考下
    2023-07-07

最新评论