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

Ubuntu20.04 AWS EC2下Docker部署MySQL8.0.26报lower_case_table_names错误如何解决

MySQL 8.0 Docker容器lower_case_table_names配置冲突解决方案

问题根因

MySQL 8.0及以上版本强制要求lower_case_table_names参数必须在数据库首次初始化(数据目录为空时)完成配置,参数值一旦随数据字典写入存储后,后续启动时再修改参数就会触发「服务配置与数据字典配置不匹配」的报错。

你本地macOS环境可正常运行,是因为macOS默认文件系统大小写不敏感,MySQL首次初始化时默认将lower_case_table_names设为2;而Ubuntu系统文件系统默认大小写敏感,MySQL默认参数值为0。你遇到报错的核心原因是当前挂载的./dbdata目录中已经存在旧的初始化数据,其中写入的lower_case_table_names值和你启动时指定的参数不一致。

无存量数据的修复步骤

如果服务器上没有需要保留的业务数据,直接按以下步骤操作:

  1. 清理旧容器与残留数据
# 停止并删除当前项目的所有容器及关联匿名卷
docker-compose down -v
# 彻底删除本地挂载的数据库目录,清空旧的初始化数据
sudo rm -rf ./dbdata
  1. 确认docker-compose.yml配置
    你现有配置中的command: --lower_case_table_names=1无需修改,保持即可。
  2. 重新启动服务
docker-compose up -d

有存量数据的迁移步骤

如果本地mac环境的数据库有需要同步到服务器的业务数据,不能直接拷贝dbdata目录,需按以下步骤操作:

  1. 在本地正常运行的MySQL容器中导出全量备份
docker exec -it <本地MySQL容器名> mysqldump -u root -p --all-databases > backup.sql
  1. 按上述无存量数据的步骤完成服务器端MySQL容器的初始化启动
  2. 将备份数据导入服务器运行中的MySQL容器
docker exec -i <服务器MySQL容器名> mysql -u root -p < backup.sql

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 14:12:03