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

Ubuntu修改MySQL的tmpdir参数失败的解决方法

问题

  1. 在查询大表时,MySQL提示ERROR 3 (HY000): Error writing file '/tmp/MYfd=268' (OS errno 28 - No space,应该是临时文件夹/tmp没有足够的空间;
  2. 想修改文件夹/etc/mysql/my.cnf中的参数tmpdir命令改变临时文件夹;
sudo nano /etc/mysql/my.cnf
# 以下是my.cnf文件中新增的内容
[mysqld]
tmpdir = /path_to_new_tmp
# 以上是my.cnf文件中新增的内容sudo chown -R root:root /path_to_new_tmp
sudo chmod -R 1777 /path_to_new_tmp
  1. 但修改后重启MySQL服务时提示Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xeu mysql.service" for details.查看log文件也没发现相关提示;
  2. 经过测试(删除修改后的tmpdir参数即可启动MySQL服务成功),推测应该是新的临时文件夹出现了问题,但是权限也给了,为啥呢?

解决方法

  1. 搜索得知1,Linux内核安全模块AppArmor可能限制MySQL写入新的临时目录。AppArmor配置文件定义程序的文件访问权限,而mysqld的配置文件可能不允许写入指定的新临时目录。
  2. 要解决此问题,需要更新mysqldAppArmor配置文件,以允许MySQL写入新的临时目录。
sudo vim /etc/apparmor.d/usr.sbin.mysqld
# 以下是usr.sbin.mysqld文件中新增的内容,以允许对新临时目录进行读写访问
# Allow data dir access/path_to_new_tmp/ r,/path_to_new_tmp/** rwk,
# 以上是usr.sbin.mysqld文件中新增的内容sudo /etc/init.d/apparmor reload
sudo /etc/init.d/mysql restart
sudo systemctl restart mysql
# 检查tmpdir变量是否修改成功
mysql -u root -p[password] -e "SHOW VARIABLES LIKE 'tmpdir';"

  1. https://stackoverflow.com/questions/18944653/mysql-wont-start-after-changing-temp-dir-on-ubuntu-12-04 ↩︎

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C# —— 字典
  • 情系端午,爱暖精诚 | 我院开展温情献礼端午慰问活动
  • MongoDB入门与实践
  • 【串口通信-USART】
  • Vue I18n国际化插件
  • 数据库 |试卷1试卷2
  • python 数据清洗基础教程
  • 19、架构-虚拟化容器
  • Trees Grass Rocks Enviroment Pack
  • 深度理解微信小程序技术架构:从前端到后台
  • 第6天:表单处理与验证
  • 正则表达式常用表示
  • 高等数学笔记(二):极限
  • 京东618 :AI总裁数字人、京东Apple Vision Pro版亮相
  • Vue 3 + Vite项目实战:常见问题与解决方案全解析
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • 【Leetcode】104. 二叉树的最大深度
  • Android开源项目规范总结
  • Android框架之Volley
  • CODING 缺陷管理功能正式开始公测
  • HashMap ConcurrentHashMap
  • Leetcode 27 Remove Element
  • Otto开发初探——微服务依赖管理新利器
  • Python 反序列化安全问题(二)
  • spring学习第二天
  • vue-cli在webpack的配置文件探究
  • 阿里云应用高可用服务公测发布
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 配置 PM2 实现代码自动发布
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 深度学习在携程攻略社区的应用
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • 1.Ext JS 建立web开发工程
  • kubernetes资源对象--ingress
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • ​第20课 在Android Native开发中加入新的C++类
  • ​人工智能书单(数学基础篇)
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • #Linux(make工具和makefile文件以及makefile语法)
  • #Linux(权限管理)
  • #window11设置系统变量#
  • $.ajax,axios,fetch三种ajax请求的区别
  • (007)XHTML文档之标题——h1~h6
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (LLM) 很笨
  • (附源码)ssm高校志愿者服务系统 毕业设计 011648
  • (五)c52学习之旅-静态数码管
  • (一)Linux+Windows下安装ffmpeg
  • (杂交版)植物大战僵尸
  • (转)linux 命令大全
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException