mysql: docker 异常 - mbind: Operation not permitted

mbind: Operation not permitted

前言:


用数据库处理平台问题今天报错,mbind: Operation not permitted

在这里插入图片描述
mbind 不允许操作,一头雾水这是什么意思。
网上找了很多资料大概意思是:

这个错误通常表示操作系统或系统管理员已经限制了进程的内存绑定操作。内存绑定是一种将进程的内存映射到特定的物理内存区域的操作,这可以提高性能或者确保一些特定的内存访问策略。但是,在某些环境下,比如虚拟化环境或者受限制的系统中,可能会禁止这种操作。

我是用docker进行处理的,也就是docker虚拟化容器技术。所以这个问题需要docker买单。对于MySQL来说,这个错误可能会影响其正常的运行的,因为我系统已经挂了几次了,几次链接不上mysql。那么如果说是docker问题,这个问题还是需要从docker入手。

从资料上面了解到,Seccomp(Secure Computing Mode)Linux内核提供的一种安全特性,它可以限制进程能够执行的系统调用。这种限制可以帮助提高系统的安全性,尤其是在容器化环境中,通过限制容器内进程的系统调用,可以减少攻击面,提高整体系统的安全性。

Docker中,Seccomp可以被用来限制容器内进程所能执行的系统调用,从而降低潜在的攻击风险。然而,有时候过于严格的Seccomp规则可能会导致一些应用程序无法正常运行,比如现在遇到的MySQL问题就可能是由于Seccomp规则限制了某些MySQL进程所需的系统调用而导致的。

为了解决这类问题,需要考虑修改DockerSeccomp配置,放宽对某些系统调用的限制来看看;


正文:

要放宽DockerSeccomp配置的限制,可以按照以下步骤进行:

首先了解当前的Seccomp配置: 需要了解当前Docker容器的Seccomp配置。

docker inspect <container_name> | grep Seccomp
docker inspect mysql | grep Seccomp

我的没有配置信息
在这里插入图片描述
我的机器是阿里云机器ecs默认指定的docker环境,所以可能 Docker 守护程序(Docker daemon)使用了默认的 Seccomp 配置。

在这里插入图片描述

github docker/mysql里面查一下这个问题,没想到让我get到了
在这里插入图片描述

我用的是8.+ 这个人一路试到5.7.8没有这个问题,所以第一个解法有了

github docker/mysql

在这里插入图片描述
关于关闭muysqlseccomp配置文件的检验从这个人说的,keeps restarting 看来也没有什么作用

security_opt:
  - seccomp:unconfined

在这里插入图片描述

这个人说的靠谱。知道是安全校验问题,还是要回归到安全校验问题上去。

Docker中这样做的最简单方法是添加 SYS_NICE 功能,这将自动调整默认的 seccomp 配置文件以包含必要能力

尝试一下啊:


结论 :

在这里插入图片描述
其实这个是取巧的办法增加他的权限而已:关于cap_add 解释是这样的:

cap_addDocker Compose 中用来添加 Linux 的特权(capabilities)的选项之一,而 SYS_NICE 是其中的一种特权。 SYS_NICE 允许进程修改其优先级(nice值)。通过添加 SYS_NICE 特权,你可以允许容器中的进程修改其优先级。

在这里插入图片描述
如果还是有问题,其实还是需要对容器或者系统这个下面的seccomp 进行加权配置了 目前我的问题解决了

在这里插入图片描述

  • 13
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值