zoukankan      html  css  js  c++  java
  • apparmor mysql_Ubuntu 上更改 MySQL 数据库数据存储目录

    转:https://blog.csdn.net/weixin_39956036/article/details/113239118

    错误信息为“[Warning] Can’t create test file /mysql_data/mysql/mylnx2.lower-test”。其实这里是踩到了“AppArmor”这个坑,之前对Ubuntu了解不多,所以直到遇到这个问题,才了解、知道这么个概念。下面是百科对AppArmor的介绍:

    AppArmor是一个高效和易于使用的Linux系统安全应用程序。AppArmor对操作系统和应用程序所受到的威胁进行从内到外的保护,甚至是未被发现的0day漏洞和未知的应用程序漏洞所导致的攻击。AppArmor安全策略可以完全定义个别应用程序可以访问的系统资源与各自的特权。AppArmor包含大量的默认策略,它将先进的静态分析和基于学习的工具结合起来,AppArmor甚至可以使非常复杂的应用可以使用在很短的时间内应用成功。

    AppArmor对MySQL所能使用的目录权限做了限制,如下截图所示,规定了MySQL使用的数据文件路径权限。

    # cat /etc/apparmor.d/usr.sbin.mysqld

    我将MySQL的数据库数据存储目录从/var/lib/mysql 切换到/mysql_data/mysql下面。所以就遇到了上面错误,需要修改或新增两条记录,从而使mysqld可以使用/mysql_data/mysql这个目录

    /mysql_data/mysql/ r,

    /mysql_data/mysql/** rwk,

    然后重启AppArmor服务后,然后就可以重启MySQL服务了。

    sudo service apparmor restart

    当然/etc/apparmor.d/usr.sbin.mysqld还有Allow plugin access需要调整,这个不是重点,在此略过。

    犹豫了一会,还是记录一下这个小小案例!虽然网上已有不少人总结这个,但是自己动手总结一下,印象也深刻一点!返回搜狐,查看更多
    ————————————————
    版权声明:本文为CSDN博主「weixin_39956036」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/weixin_39956036/article/details/113239118

    备注命令:

    sed -i 's//var/lib/mysql///data/mysql//' /etc/apparmor.d/usr.sbin.mysqld
    systemctl reload apparmor.service

    cat /etc/apparmor.d/usr.sbin.mysqld

    /data/mysql/bin/mysqld {
    # Allow system resource access
      /proc/*/status r,
      /sys/devices/system/cpu/ r,
      /sys/devices/system/node/ r,
      /sys/devices/system/node/** r,
      capability sys_resource,
      capability dac_override,
      capability dac_read_search,
      capability setuid,
      capability setgid,
    
    # Allow network access
      network tcp,
    
      /etc/hosts.allow r,
      /etc/hosts.deny r,
    
    # Allow systemd notify messages
      /{,var/}run/systemd/notify w,
    
    # Allow read access to OpenSSL config
      /etc/ssl/openssl.cnf r,
    
    /data/mysql r,
    /data/mysql/** rwk,
    }/data/mysql/bin/mysqld {
    # Allow system resource access
      /proc/*/status r,
      /sys/devices/system/cpu/ r,
      /sys/devices/system/node/ r,
      /sys/devices/system/node/** r,
      capability sys_resource,
      capability dac_override,
      capability dac_read_search,
      capability setuid,
      capability setgid,
    
    # Allow network access
      network tcp,
    
      /etc/hosts.allow r,
      /etc/hosts.deny r,
    
    # Allow systemd notify messages
      /{,var/}run/systemd/notify w,
    
    # Allow read access to OpenSSL config
      /etc/ssl/openssl.cnf r,
    
    /data/mysql r,
    /data/mysql/** rwk,
    }
  • 相关阅读:
    在上传文件时限制上传文件的大小,并捕捉超过文件大小限制的
    javascript 获取标签具体位置
    终端服务器超出了最大允许连接数
    常用SQL语句书写技巧
    Javascript实现截图功能(代码)
    JavaScript实现类,有多种方法。
    DBCC CHECKDB 数据库或表修复
    Lucene的例子
    控制同一exe程序打开多次
    IIS6 MMC检测到此管理单元发生一个错误,建议您关闭并重新启动mmc
  • 原文地址:https://www.cnblogs.com/nanxiang/p/14808037.html
Copyright © 2011-2022 走看看