Mysql启动报错,Can't create thread to handle bootstrap (errno: 1) Data Dictionary initialization failed The designated data directory /var/lib/mysql/ is unusable.
# Docker MySQL 8 启动失败问题总结(2026-05-14)
## 🧩 问题现象
在 Docker 中启动 MySQL 8.4 容器时失败,日志如下:
Can't create thread to handle bootstrap (errno: 1)
Data Dictionary initialization failed
The designated data directory /var/lib/mysql/ is unusable
容器无法完成初始化,直接退出。
排查过程
1. 排除 volume 问题
不挂载数据目录启动:
docker run -d --name mysql-test
-e MYSQL_ROOT_PASSWORD=123456
mysql:8.4
仍然失败,说明不是数据目录问题。
2. 排除 SELinux
getenforce → Disabled
SELinux 无影响。
3. 排除内存与 ulimit
- memory 4G 足够
- nproc / nofile 正常
- kernel threads-max 正常
4. 关键异常
/sys/fs/cgroup/pids.max 不存在
说明当前系统 cgroup pids controller 不完整或未生效。
根本原因
Docker 运行环境中 pids / 线程资源控制异常,导致 MySQL 在初始化阶段无法创建必要线程(bootstrap thread),触发:
- errno: 1(EPERM)
- mysqld 初始化失败
属于容器运行时限制问题,而非 MySQL 本身问题。
解决方案
使用 privileged 模式运行
docker run -d
--name mysql8
--privileged
-p 3306:3306
-e MYSQL_ROOT_PASSWORD=123456
mysql:8.4
结论
问题根因是 Docker cgroup / pids 子系统限制导致线程创建失败。
使用 --privileged 可绕过限制,使 MySQL 正常启动。

浙公网安备 33010602011771号