You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker容器中mysql:8.0.30缺失mysqlbinlog命令,旧版本为何存在?

问题描述
  • 运行MySQL容器:docker run -d --name=mysql-server -p 3306:3306 -e MYSQL_ROOT_PASSWORD=t123456 mysql:8.0.30
  • 执行查找命令:find / -name mysqlbinlog,返回结果:
sh-4.4# find / -name mysqlbinlog
find: '/proc/1/map_files': Permission denied
  • 直接运行mysqlbinlog命令失败:
sh-4.4# mysqlbinlog
sh: mysqlbinlog: command not found

更新

将MySQL容器版本更换为8.0.23后,mysqlbinlog命令可正常找到。请问为何8.0.30这类新版本容器中缺失mysqlbinlog命令?


原因说明

从MySQL 8.0.26版本开始,官方mysql镜像做了瘦身优化,把mysqlbinlog这类客户端工具从主镜像里剥离出来,放到了单独的带-clients后缀的镜像(比如mysql/mysql-server:8.0.30-clients)中。这么做是为了缩小主镜像体积,只保留数据库运行必需的核心组件。

如果要在新版本主镜像容器里使用mysqlbinlog,有两种解决办法:

  1. 直接使用带-clients后缀的镜像启动容器
  2. 在已运行的主镜像容器内安装客户端工具包:
    • Debian/Ubuntu系镜像:执行apt update && apt install -y mysql-client
    • RHEL/CentOS系镜像:执行yum install -y mysql

内容的提问来源于stack exchange,提问作者zhenghao li

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 20:15:46