当前位置: 代码网 > it编程>数据库>Mysql > Wsl解决MySQL容器跨域权限问题小结

Wsl解决MySQL容器跨域权限问题小结

2026年07月20日 Mysql 我要评论
在使用wsl(windows subsystem for linux)中运行mysql容器时,可能会遇到跨域权限问题,尤其是在尝试从外部客户端(如浏览器或移动应用)访问mysql服务时。这类问题通常与

在使用wsl(windows subsystem for linux)中运行mysql容器时,可能会遇到跨域权限问题,尤其是在尝试从外部客户端(如浏览器或移动应用)访问mysql服务时。这类问题通常与cors(跨源资源共享)策略有关,而不是直接的mysql容器权限问题。

问题分析

通过查阅资料,可以知道主要原因在于mysql 容器运行时,容器内部需要特殊执行角色账户,而通过wsl 从宿主目录映射到子系统内部,中间转换过程中,无法正常映射角色权限,导致目录绑定跨域宿主-子系统-docker容器出现权限不足。子系统挂载数据库目录失败,虽然目录中创建了对应的初始化数据配置,实际运行时,容器服务内部无法正常运行。
实际报错日志如下:

mysqld: cannot change permissions of the file 'ca.pem' (os errno 1 - operation not permitted)

解决办法

解决办法是,不把当前windows对应路径挂在到容器中,使用命名数据卷进行数据持久化,将权限交由容器内部处理,不过度干涉,创建过程如下:

sudo docker volume create [volume_name]

查看命名数据卷信息。

sudo docker volume inspect [volume_name]

输出如下:

[
    {
        "createdat": "2026-07-16t18:49:17+08:00",
        "driver": "local",
        "labels": null,
        "mountpoint": "/var/lib/docker/volumes/[volume_name]/_data",
        "name": "mysql_data",
        "options": null,
        "scope": "local"
    }

实际真实目录挂载点在wsl 子系统中。不管运行之后容器是否删除,命令数据卷在没被删除之前,内部数据均存在。
挂载时,命令行执行命令如下:

sudo docker -v [volume_name]:/var/lib/mysql ....

使用docker-compose 时,有两种方式,一种是直接引入当前已经创建的命令数据卷,一种是指定数据卷名称,由docker-compose 运行配置配置过程中进行指定创建。

使用已存在命名数据卷。

version: '3.8'
services:
  mysql:
    image: mysql:8.4.10
    container_name: mysql
    volumes:
      - mysql_data:/var/lib/mysql       # 数据持久化
	#...
volumes:
  mysql_data:
    external: true

自定义创建。

version: '3.8'
services:
  mysql:
    image: mysql:8.4.10
    container_name: mysql
    volumes:
      - mysql_data:/var/lib/mysql       # 数据持久化
    #...
volumes:
  mysql_data:

通过查看数据卷列表。

sudo  docker volume ls

可以看到一个以[servicename]_[volumename] 命名的数据卷。

driver    volume name
local     mysql_mysql_data

到此这篇关于wsl解决mysql容器跨域权限问题小结的文章就介绍到这了,更多相关mysql跨域权限问题内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com