当前位置: 首页 > news >正文

apparmor mysql_Ubuntu 上更改 MySQL 数据库数据存储目录

原标题:Ubuntu 上更改 MySQL 数据库数据存储目录

来源:潇湘隐者

www.cnblogs.com/kerrycode/p/9795474.html

之前写过一篇博客“MySQL更改数据库数据存储目录”,当时的测试环境是RHEL和CentOS,谁想最近在Ubuntu下面更改MySQL数据库数据存储目录时遇到了之前未遇到的问题,之前的经验用不上了(或者说之前的总结不是太全面),修改完MySQL数据库数据存储目录后重启MySQL,发现MySQL服务无法启动。

root@mylnx2:/etc/mysql/mysql.conf.d# service mysql start

Jobformysql.service failed because the control process exited with errorcode.See"systemctl status mysql.service"and"journalctl -xe"fordetails.

连MySQL的错误日志也未生成,使用service mysql status命令可以输出一些较详细的信息,如下所示:

770a95fc64e967e49bd64da7058f227d.png

错误信息为“[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

69f9fb354624555d01cbfc8db6b56df3.png

我将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需要调整,这个不是重点,在此略过。

犹豫了一会,还是记录一下这个小小案例!虽然网上已有不少人总结这个,但是自己动手总结一下,印象也深刻一点!返回搜狐,查看更多

责任编辑:

相关文章:

  • mysql工程师需要会哪些_MySQL面试高频100问(工程师方向)
  • mysql 客户端 连接数_监控mysql上客户端的连接数
  • mysql带库名查询_MySQL优化
  • docker mysql 差8小时_docker之容器日志输出与系统时间相差8小时解决办法
  • java白盒测试问题_白盒测试项目实践经验总结(三)-返回码问题
  • 9点到17点半 cron_定时任务Quartz简单配置与cron表达式
  • python3 web服务器_python3实现微型的web服务器
  • python if else简写_python代码简写(推导式 if else for in)
  • mysql的终端窗口是什么意思_什么叫终端窗口
  • python给list添加元素_在python中正确地向ListStore添加元素
  • MySQL 备份 s3_linux – 完整的数据备份到Amazon S3
  • mysql5.6双向同步配置_mysql5.6数据库同步,单向双向同步问题
  • mysql查看job执行时间_Oracle通过job定时执行任务
  • python十大操作方法_Python基本操作方法及常见案例介绍,列表,和,以及,常用
  • python开发bi报表_BI报表有什么优势
  • 【翻译】babel对TC39装饰器草案的实现
  • Akka系列(七):Actor持久化之Akka persistence
  • co模块的前端实现
  • ES学习笔记(12)--Symbol
  • Facebook AccountKit 接入的坑点
  • gf框架之分页模块(五) - 自定义分页
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • javascript数组去重/查找/插入/删除
  • Java基本数据类型之Number
  • Netty源码解析1-Buffer
  • Python中eval与exec的使用及区别
  • Redis学习笔记 - pipline(流水线、管道)
  • vue 个人积累(使用工具,组件)
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • Vue组件定义
  • XML已死 ?
  • 设计模式 开闭原则
  • 使用API自动生成工具优化前端工作流
  • 听说你叫Java(二)–Servlet请求
  • puppet连载22:define用法
  • zabbix3.2监控linux磁盘IO
  • ​如何防止网络攻击?
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #android不同版本废弃api,新api。
  • $L^p$ 调和函数恒为零
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (03)光刻——半导体电路的绘制
  • (C)一些题4
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (七)c52学习之旅-中断
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (三)模仿学习-Action数据的模仿
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (四)Linux Shell编程——输入输出重定向
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .net core使用RPC方式进行高效的HTTP服务访问