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

Docker部署Laravel项目时MySQL容器启动失败(权限错误)求助

Docker部署Laravel项目时MySQL容器启动失败(权限错误)求助

大家好,我最近一周被一个问题搞到头大,实在没办法了来求助!我用Docker搭了个小型Laravel项目,但MySQL容器完全没法正常工作,总是自己崩溃。查看容器日志docker logs my-container时,会报错:

Cannot change permissions of the file 'private_key.pem.temp' (OS errno 1 - Operation not permitted)

我的配置信息如下:

.env文件配置

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=laravel_ead
DB_USERNAME=sail
DB_PASSWORD=root

docker-compose.yml中MySQL服务配置

mysql:
  image: mysql:8.0
  restart: unless-stopped
  environment:
    MYSQL_DATABASE: ${DB_DATABASE}
    MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
    MYSQL_PASSWORD: ${DB_PASSWORD}
    MYSQL_USER: ${DB_USERNAME}
  command: ["--disable-partition-engine-check"]
  volumes:
    - ./.docker/mysql/dbdata:/var/lib/mysql
    - mysql-data:/var/lib/mysql
  ports:
    - 3388:3306
  networks:
    - laravel-eti

我已经尝试过这些方法,但都没用:

  • 修改端口号
  • 把DB_HOST改成127.0.0.1或者localhost
  • 清除Laravel缓存
  • 尝试使用Sail工具
  • 删除整个项目重新搭建
  • 卸载并重装Docker

另外补充一下,我用的是Windows系统(WSL2环境)。在出现这个权限错误之前,每次执行php artisan migrate都会报错:

SQLSTATE[HY000] [1130] Host '172.20.0.6' is not allowed to connect to this MySQL server


针对WSL2环境的解决方案建议

方案1:改用Docker命名卷避免权限冲突

这个权限问题大概率是WSL2与Windows文件挂载的权限不兼容导致的,试试用Docker管理的命名卷替代本地目录挂载:

  1. 先停止并清理现有容器和卷:
    docker-compose down -v
    
  2. 删除本地的.docker/mysql/dbdata目录:
    rm -rf ./.docker/mysql/dbdata
    
  3. 修改docker-compose.yml的MySQL卷配置,只保留命名卷:
    volumes:
      - mysql-data:/var/lib/mysql
    
  4. 重新启动MySQL容器:
    docker-compose up -d mysql
    

方案2:调整WSL2的文件挂载权限

如果一定要用本地目录挂载,可以修改WSL2的全局配置:

  1. 在Windows用户目录下新建或编辑.wslconfig文件,添加以下内容:
    [automount]
    enabled = true
    root = /mnt/
    options = "metadata,umask=0022"
    mountFsTab = false
    
  2. 重启WSL2服务:
    wsl --shutdown
    
  3. 重新启动Docker和项目容器。

方案3:解决MySQL主机连接权限问题

如果后续再遇到1130错误,可以进入容器给授权用户开放所有主机访问权限:

  1. 进入MySQL容器:
    docker exec -it <你的MySQL容器名称> mysql -uroot -proot
    
  2. 执行授权SQL:
    GRANT ALL PRIVILEGES ON laravel_ead.* TO 'sail'@'%' IDENTIFIED BY 'root';
    FLUSH PRIVILEGES;
    

备注:内容来源于stack exchange,提问作者Sapinn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 10:18:09