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

如何用Docker启动并初始化MySQL 8?解决权限拒绝报错问题

解决MySQL容器权限错误:/var/lib/mysql/auto.cnf 权限拒绝

问题场景

使用M1芯片Mac,通过docker buildx build --platform linux/amd64 --load -t mysqltest -f path/to/Dockerfile .构建amd64架构的MySQL镜像,执行docker-compose up时持续报错:

mysqld: File '/var/lib/mysql/auto.cnf' not found (OS errno 13 - Permission denied)

相关配置文件:

Dockerfile

FROM mysql/mysql-server:8.0.32

# 初始化环境变量
ENV MYSQL_ROOT_PASSWORD=test_password
ENV MYSQL_DATABASE=new_database
ENV MYSQL_USER=user
ENV MYSQL_PASSWORD=test_password

RUN microdnf update && microdnf -y install vim

EXPOSE 3306
CMD ["mysqld"]

docker-compose.yml

version: "3.7"

networks:
  backend:
    driver: ${NETWORKS_DRIVER}

services:
  db:
    image: mysqltest
    container_name: db
    build:
      context: .
      dockerfile: ./path/to/Dockerfile
    restart: always
    env_file:
      - .env
    ports:
      - "3306:3306"
    expose:
      - "3306"
    volumes:
      - db-volume:/var/lib/mysql
      - ./docker/db/sql-scripts:/docker-entrypoint-initdb.d/
      - ./docker/db/configs:/etc/mysql
    networks:
      - backend

volumes:
  db-volume:

原因分析

  1. 跨平台构建权限不兼容:M1 Mac为arm64架构,构建amd64镜像后,挂载的命名卷或本地目录权限与容器内mysql用户(UID 27)不匹配。
  2. 本地挂载目录权限错误:./docker/db/configs和./docker/db/sql-scripts的主机权限未适配容器内mysql用户。
  3. 旧命名卷残留异常:之前运行失败的容器可能在db-volume中留下了权限错误的文件。

解决方案

1. 清理旧命名卷并重新构建

彻底移除旧容器和卷,再重新启动:

docker-compose down -v
docker-compose up --build

2. 修正本地挂载目录权限

在主机上为本地挂载目录设置匹配容器内mysql用户的权限(UID 27):

sudo chown -R 27:27 ./docker/db/configs ./docker/db/sql-scripts

3. 在docker-compose中指定构建平台

无需手动使用buildx,直接在compose配置中指定amd64平台,确保构建和运行的权限一致性:
修改docker-compose.yml中db服务的build部分:

build:
  context: .
  dockerfile: ./path/to/Dockerfile
  platform: linux/amd64

然后执行:

docker-compose up --build

4. 移除不必要的配置挂载

如果无需自定义MySQL配置,删除- ./docker/db/configs:/etc/mysql这一行挂载,使用镜像默认的配置目录,避免权限冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 05:54:53