连不上MySQL容器需检查:-p端口映射是否显式指定、--network自定义网络下必须用-p而非直连IP;Linux需确认防火墙未拦截3306;root密码须通过MYSQ_ROOT_PASSWORD设置且仅首次初始化生效;init脚本仅在空数据目录时执行;8.0默认认证插件不兼容旧客户端,需加--default-authentication-plugin=mysql_native_password。docker run 启动 MySQL 容器时连不上?检查 -p 和 --network默认情况下 docker run -d -p 3306:3306 mysql:8.0 看似正确,但宿主机 3306 被占用、或容器没暴露端口、或用了自定义网络却没配好网关,都会导致本地 mysql -h 127.0.0.1 -P 3306 连不上。-p 3306:3306 必须显式写,MySQL 镜像不自动发布端口若用 --network mynet,宿主机无法直连容器 IP,得走 -p 映射,或改用 docker exec -it mysql-container mysql -uroot -pMac/Windows 上 Docker Desktop 的 localhost 可连,Linux 宿主机需确认 iptables/firewalld 没拦截 3306root 密码设了却还是提示 Access denied?看 MYSQ_ROOT_PASSWORD 和初始化时机MySQL 官方镜像要求必须通过环境变量 MYSQ_ROOT_PASSWORD 设置 root 密码,且只在容器首次启动、数据目录为空时生效。如果反复删容器重跑但没清 -v 挂载的卷,旧数据还在,密码不会被覆盖。务必加 -e MYSQL_ROOT_PASSWORD=abc123,不设则容器启动失败(8.0+)挂载了 -v ./mysql-data:/var/lib/mysql 就得自己清目录,否则再跑也不会重新初始化想跳过密码直接进,可临时加 --skip-grant-tables,但仅限调试,不能用于生产容器里执行 SQL 初始化脚本失败?注意 /docker-entrypoint-initdb.d/ 的触发条件把 init.sql 放进 /docker-entrypoint-initdb.d/ 目录下,只有在容器首次初始化数据库时才执行------也就是 /var/lib/mysql 为空、且 MYSQL_ROOT_PASSWORD 已设置的前提下。 通义听悟 阿里云通义听悟是聚焦音视频内容的工作学习AI助手,依托大模型,帮助用户记录、整理和分析音视频内容,体验用大模型做音视频笔记、整理会议记录。
相关推荐
高洁0111 分钟前
边缘AI与大模型轻量化:让智能跑进每一个终端MoRanzhi12031 小时前
第6篇(中)· 使用 PyQt5 实现 2048 高性能计算版:无头后台求解与三档运行模式2601_957084843 小时前
2026年生产型服装供应链SCM系统丨水洗参数、产能与验收节点架构Metaphor6923 小时前
Python 自动化办公:如何轻松在 PDF 中导入与导出表单数据IvorySQL8 小时前
PostgreSQL 日报|恢复期 COPY TO 未日志表修复(10 月 21 日)贝猫说python10 小时前
大模型比赛2.3智能体开发(工具调用智能问答助手)许彰午11 小时前
28-ORA-01110数据文件读取错误凯凯姜11 小时前
MySQL 联合索引设计与索引失效猫咪很可爱12 小时前
Oracle TEMP 表空间不足(ORA-01652)问题分析与优化实践外收内放12 小时前
面向对象高级(实战案例)