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

【mysql系】mysql启动异常Can‘t create test file localhost.lower-test

1.查看通过下面命令获取对应mysql配置文件

whereis my.cnf

2.查看日志文件

下面这里是对应的错误日志

2025-03-03T06:33:56.402057Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2025-03-03T06:33:56.402351Z 0 [Warning] Can't create test file /home/xxx/data/mysql/localhost.lower-test
2025-03-03T06:33:56.402412Z 0 [Note] /usr/sbin/mysqld (mysqld 5.7.35-log) starting as process 4020 ...
2025-03-03T06:33:56.405813Z 0 [Warning] Can't create test file /home/xxx/data/mysql/localhost.lower-test
2025-03-03T06:33:56.405861Z 0 [Warning] Can't create test file /home/xxx/data/mysql/localhost.lower-test
mysqld: File './mysql-bin.index' not found (Errcode: 13 - Permission denied)
2025-03-03T06:33:56.406318Z 0 [ERROR] Aborting2025-03-03T06:33:56.406355Z 0 [Note] Binlog end
2025-03-03T06:33:56.406572Z 0 [Note] /usr/sbin/mysqld: Shutdown complete

3.查看相关目录是否有对应的目录权限,

我们都知道mysql安装的话,为了增强数据安全,mysqlf安装通常会创建一个名为mysql的系统用户和用户组,而不是root用户。默认数据目录归属mysql:mysql 这样的用户和用户组的身份权限

ls -ld /home/xxx/data/mysql

可以看到数据目录权限没有问题

4.了解SELinux

那上面的权限没有问题,为什么日志还是提示没有权限访问的异常呢?回想记得linux在控制操作系统目录权限有个SELinux的东西,

我们借助ai了解下

SELinux(Security-Enhanced Linux)是 Linux 内核的一个 ​强制访问控制(MAC,Mandatory Access Control)​​ 安全模块,由美国国家安全局(NSA)开发并开源。它的核心目标是为 Linux 系统提供更细粒度的权限控制,弥补传统 Linux 权限(DAC,自主访问控制)的不足,增强系统安全性。

下面是ai给我们的回复

SELinux 的核心作用
1. ​强制访问控制(MAC)​
​传统 Linux 权限(DAC)的问题:
通过 chmod 和 chown 设置的权限是“自主”的,用户或进程可以自由修改文件权限。一旦某个进程被入侵(如 Web 服务器被攻破),攻击者可以利用该进程的权限肆意操作。
​SELinux 的解决方案:
定义严格的规则(策略),明确指定 ​哪些进程可以访问哪些资源​(文件、端口等)。即使进程拥有 root 权限,若不符合 SELinux 规则,依然会被拒绝访问。
2. ​最小权限原则
每个进程只能访问完成其任务所必需的资源,其他操作默认禁止。例如:
Apache 只能访问 /var/www/html 目录,无法读取 /etc/shadow。
MySQL 只能写入其数据目录,不能修改系统配置文件。
3. ​防御未知漏洞
即使应用程序存在漏洞(如缓冲区溢出),SELinux 也能限制被入侵进程的行为,防止横向渗透。
4. ​保护敏感资源
控制对系统关键文件、端口、设备的访问。例如:
禁止非授权进程监听 80 端口。
禁止普通用户修改系统日志。
​SELinux 的三种运行模式
模式	说明
​Enforcing​	强制执行 SELinux 策略,违反规则的操作会被阻止并记录日志(生产环境推荐)。
​Permissive	仅记录违规行为,不阻止操作(用于调试和策略测试)。
​Disabled​	完全禁用 SELinux(不推荐,会降低系统安全性)。
查看当前模式:
bash
getenforce  # 输出 Enforcing/Permissive/Disabled
临时切换模式:
bash
setenforce 1  # Enforcing 模式
setenforce 0  # Permissive 模式
​SELinux 的关键概念
1. ​上下文(Context)​
每个进程、文件、端口等资源都有一个 SELinux 上下文标签,格式为:
user:role:type:level(常用的是 type 字段)。
示例:
bash
# 查看文件的 SELinux 上下文
ls -Z /var/www/html/index.html
# 输出:system_u:object_r:httpd_sys_content_t:s0 index.html# 查看进程的 SELinux 上下文
ps -Z $(pgrep httpd)
# 输出:system_u:system_r:httpd_t:s0
2. ​策略(Policy)​
预定义规则集合,描述允许的操作(例如:httpd_t 类型的进程可以读取 httpd_sys_content_t 类型的文件)。
默认策略包:
targeted:仅保护关键服务(默认)。
mls:多级安全策略(军事级)。
3. ​布尔值(Boolean)​
动态调整策略的开关。例如,允许 Apache 访问用户家目录:
bash
setsebool -P httpd_enable_homedirs on
​SELinux 的典型应用场景
1. ​Web 服务器(Apache/Nginx)​
默认只能访问 /var/www/html。若网站目录更改到 /opt/webapp,需修改上下文:
bash
semanage fcontext -a -t httpd_sys_content_t "/opt/webapp(/.*)?"
restorecon -Rv /opt/webapp
2. ​数据库(MySQL/PostgreSQL)​
数据目录必须标记为 mysqld_db_t。自定义路径时需修复上下文(如你的案例)。
3. ​自定义端口
若要让 Nginx 监听 8080 端口,需授权:
bash
semanage port -a -t http_port_t -p tcp 8080
​为什么不应禁用 SELinux?
​降低安全防护:禁用后,系统仅依赖传统 Linux 权限,易受提权攻击。
​合规性要求:许多安全标准(如 PCI DSS)要求启用 MAC 机制。
​调试优先于禁用:遇到权限问题时,应通过日志分析并修复策略,而不是直接关闭 SELinux。
​SELinux 日志与故障排查
查看 SELinux 拒绝记录:
bash
# 安装分析工具
yum install setroubleshoot -y  # CentOS/RHEL
apt install setroubleshoot -y  # Ubuntu/Debian# 查看日志
grep "AVC denied" /var/log/audit/audit.log
根据日志提示使用 audit2allow 生成临时规则:
bash
audit2allow -a -M mypolicy
semodule -i mypolicy.pp
​总结
SELinux 是 Linux 系统的“超级保镖”,通过强制访问控制提供纵深防御。虽然初期学习成本较高,但正确配置后能显著提升系统安全性。遇到权限问题时,应优先通过 semanage、restorecon 和布尔值调整策略,而非简单禁用。

查看对应SELinux的模式

getenforce

我们调试执行setenforce 0 命令,mysql确实可以正常启动了。但是这种方式根据ai的回复是有风险的,那我们正确处理的方法怎么处理呢?

5.修复 SELinux 上下文

MySQL 默认数据目录的 SELinux 上下文类型为 mysqld_db_t,需将自定义目录标记为此类型:

sudo yum install policycoreutils-python -y# 添加 SELinux 规则(允许递归标记所有子文件/目录)
semanage fcontext -a -t mysqld_db_t "/home/xxx/data/mysql(/.*)?"# 应用上下文规则
restorecon -Rv /home/xxx/data/mysql

验证上下文是否生效

ls -Z /home/xxx/data/mysql

如果输出的目录包含mysqld_db_t这个字样,就代表成功了

6.重启mysql

systemctl restart mysqld

再次重启mysql,即可看到已经成功启动

相关文章:

【mysql系】mysql启动异常Can‘t create test file localhost.lower-test

1.查看通过下面命令获取对应mysql配置文件 whereis my.cnf 2.查看日志文件 下面这里是对应的错误日志 2025-03-03T06:33:56.402057Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see …...

Docker save命令怎么用

docker save 命令用于将一个 Docker 镜像保存为一个 tar 文件。这在将镜像传输到其他系统或进行备份时非常有用。通过此命令&#xff0c;你可以将镜像导出到本地存储设备或传输给其他人。 基本语法 docker save -o <保存文件路径> <镜像名>:<标签>-o <保…...

物联网的隧道监测场景中,要实现全面且有效的监测

在物联网的隧道监测场景中&#xff0c;要实现全面且有效的监测&#xff0c;需要从传感器选型、数据采集与传输、数据分析模型构建等多个关键环节进行考量。以下是详细的实现方案&#xff1a; 1. 传感器选型 结构安全监测 应变计&#xff1a;用于测量隧道结构表面的应变情况&…...

如何使用 LLM 生成的术语自动在搜索应用程序上构建 autocomplete 功能

作者&#xff1a;来自 Elastic Michael Supangkat 了解如何在 Elastic Cloud 中&#xff0c;通过使用 LLM 生成的词汇&#xff0c;为搜索应用增强自动补全功能&#xff0c;实现更智能、更动态的搜索建议。 自动补全是搜索应用中的一项关键功能&#xff0c;它通过在用户输入时实…...

安全见闻之网络安全新兴术语

在计算机和网络安全领域&#xff0c;随着技术的不断创新与发展&#xff0c;许多新兴的术语和缩写逐渐出现。这些新词汇不仅代表了技术进步&#xff0c;也反映了网络安全应对复杂攻击和防护需求变化的趋势。尤其是在当前网络环境中&#xff0c;由于攻击手段的不断演变&#xff0…...

vscode离线配置远程服务器

目录 一、前提 二、方法 2.1 查看vscode的commit_id 2.2 下载linux服务器安装包 2.3 安装包上传到远程服务器&#xff0c;并进行文件解压缩 三、常见错误 Failed to set up socket for dynamic port forward to remote port&#xff08;vscode报错解决方法&#xff09;-C…...

JVM常用概念之对象初始化的成本

在JVM常用概念之新对象实例化博客中我讲到了对象的实例化&#xff0c;主要包含分配&#xff08;TLAB&#xff09;、系统初始化、用户初始化&#xff0c;而我在JVM常用概念之线程本地分配缓冲区&#xff08;ThreadLocal Allocation Buffer&#xff0c;TLAB&#xff09;博客中也讲…...

MinIO 容器化快速部署指南

MinIO 容器化快速部署指南 一、快速开始 # 创建网络&#xff08;需提前执行&#xff09; docker network create srebro#创建工作目录 mkdir -p /home/application/Middleware/minio/# 启动服务 docker-compose up -d二、配置说明 docker-compose.yaml 结构 services:minio…...

历年杭州电子科技大学计算机考研复试上机真题

历年杭州电子科技大学计算机考研复试机试真题 在线评测&#xff1a;https://app2098.acapp.acwing.com.cn/ 最大公约数和最小公倍数 题目描述 输入两个正整数 m 和 n&#xff0c;求其最大公约数和最小公倍数。 输入格式 两个整数 输出格式 最大公约数&#xff0c;最小公…...

K8S学习之基础十四:k8s中Deployment控制器概述

Deployment控制器概述&#xff1a; Deployment控制器是k8s中最常用的资源对象&#xff0c;为Replicaset和Pod创建提供了一种声明式的定义方法&#xff0c;在Deployment对象中描述一个期望的状态&#xff0c;Deployment控制器就会按照一定的控制速率把实际状态改成期望状态&…...

django中视图作用和视图功能 以及用法

在 Django REST Framework(DRF)中,视图(View)是处理 HTTP 请求并返回响应的核心组件。DRF 提供了多种视图类,适用于不同的场景和需求。以下是 DRF 中常见的视图类及其作用、使用方法的详细说明: 一、DRF 视图的分类 DRF 的视图可以分为以下几类: 基于函数的视图(Func…...

React Native v0.78 更新

这个版本在 React Native 中引入了 React 19&#xff0c;并带来了一些重要的新功能&#xff0c;例如 Android 矢量图&#xff08;Vector Drawables&#xff09;的原生支持 以及 iOS 更好的 Brownfield 集成。 亮点 React 19 集成更小更快的发布节奏可选择在 Metro 中启用 Jav…...

记录Linux安装mysql8

1.mysql8安装 ​​​​​​​yum安装mysql8.0版本_yum 安装mysql8-CSDN博客文章浏览阅读833次&#xff0c;点赞10次&#xff0c;收藏9次。yum安装mysql8.0版本,如果系统中已经安装了旧版本的 MySQL 或者 mariadb&#xff0c;需要先卸载._yum 安装mysql8https://blog.csdn.net/…...

采用OllamaSharp实现.NET快速对接deepseek实现聊天、模型管理、流式响应等功能

1. OllamaSharp 是什么&#xff1f; OllamaSharp 是一个用于在 .NET 环境中与 Ollama API 交互的库。它提供了对 Ollama API 端点的全面支持&#xff0c;包括聊天、模型管理、流式响应等功能&#xff0c;适合需要与 Ollama 服务进行交互的 .NET 开发者。 2. 安装 OllamaSharp…...

CodeBlocks个性化竞赛配置

文章目录 1. 主题设置2. 设置默认代码3. 比赛时的使用 1. 主题设置 参考博客 --> codeblocks更改主题颜色及调试 跟随当前教程配置主题 博主使用的主题为son of obsidian&#xff0c;此主题为黑色背景&#xff0c;按照上边参考博文修改一下光标颜色即可。 效果图&#xff1…...

如何用单机版deepseek编写示例

以下是一个简单的 DeepSeek 编程示例&#xff0c;通过 API 调用实现智能对话功能&#xff1a;文末有链接 一、环境准备 pip install requests # 安装 HTTP 请求库‌:ml-citation{ref"2" data"citationList"} 二、代码实现 import requests def chat_wi…...

python实现的可爱卸载动画

在逛掘金时&#xff0c;掘金用户在B站看到的灵感进行的一个卸载窗口的动画效果的实用案例。人类是一种不断在学习的动物&#xff0c;并且是一种模仿能力学习能里比较强的动物。我这里是第三波的学习实践者咯&#xff01; 相对VUE构建动画效果窗口&#xff0c;我更加喜欢用pytho…...

钣金加工行业数字化转型MES方案

一、 行业痛点&#xff1a;钣金加工行业普遍面临以下挑战&#xff1a; 订单多样化、小批量、定制化需求增多&#xff1a;传统生产模式难以适应快速变化的市场需求。 生产流程复杂、工序繁多&#xff1a;涉及切割、折弯、焊接、表面处理等多个环节&#xff0c;协同效率低。 生产…...

pinginfoview网络诊断工具中文版

介绍 pinginfoview中文版本是一款实用的网络诊断工具&#xff0c;它专为中文用户设计&#xff0c;提供了方便易用的界面&#xff0c;使得在Windows环境下进行ping测试变得更加简单。该工具是由NirSoft开发的一款免费的桌面应用程序&#xff0c;尽管官方可能并未正式发布中文版…...

关于服务器无法下载kcv_encoder.h5权重的解决方法

最近租服务器跑实验代码&#xff0c;在模型初次加载时会下载stable diffusion的一系列预训练权重&#xff0c;但服务器一直卡在 Downloading data from https://huggingface.co/fchollet/stable-diffusion/resolve/main/kcv_encoder.h5 &#xff0c;最后报错 File /usr/local/…...

计算光学成像与光学计算概论

计算光学成像所涉及研究的内容非常广泛&#xff0c;虽然计算光学成像的研究内容是发散的&#xff0c;但目的都是一致的&#xff1a;如何让相机记录到客观实物更丰富的信息&#xff0c;延伸并扩展人眼的视觉感知。总的来说&#xff0c;计算光学成像现阶段已经取得了很多令人振奋…...

Linux——Docker容器内MySQL密码忘记了如何查看

目录 查看正在运行的MySQL的容器ID 方法一&#xff1a;查看MySQL容器的日志里的密码 方法二&#xff1a;通过环境变量密码登录 方法三&#xff1a;修改密码 查看正在运行的MySQL的容器ID docker ps 方法一&#xff1a;查看MySQL容器的日志里的密码 docker logs [MySQL的容器…...

CSS+Html面试题(二)

一、CSS选择器有哪些&#xff0c;选择器的优先级&#xff1f; 选择器类型&#xff1a;ID选择器、类选择器、标签选择器、通配符、伪类、伪元素、子代选择器、相邻选择器、后代选择器 优先级排序&#xff1a;!important>内联样式>ID选择器>类选择器>标签选择器>…...

Varjo XR-4 混合现实驾驶仿真解决方案

企业级虚拟与混合现实解决方案提供商Varjo今日宣布&#xff0c;其XR-4系列设备已与VI-grade的车辆开发平台VI-WorldSim实现兼容。自2025.1版本起&#xff0c;VI-WorldSim将通过虚幻引擎5的OpenXR接口支持Varjo XR-4系列头显。 VI-WorldSim是一个集成式图形环境&#xff0c;可加…...

Unity3D实现批量修改导入模型设置

系列文章目录 unity工具 文章目录 系列文章目录👉前言👉一、应用场景👉1-1、模型导入设置👉二、使用步骤👉壁纸分享👉总结👉前言 不知道你们遇见没有遇见过很多模型的时候,如果一个一个设置模型的设置,那将是一个噩梦。尤其是设置模型的Materials的Location这个…...

颠覆传统软件测试!Browser Use WebUI+DeepSeek:软件测试行业的革命性突破

前置信息 硬件配置 处理器 : Intel(R) Core(TM) i5-8265U CPU 1.60GHz (四核 / 八逻辑处理器) 主板 : 20N8002UCD 内存 : 8GB(RMSA3260ME78HAF-2666 DDR4 2667 MT/s) 显示适配器 : Lexa PRO [Radeon 540/540X/550/550X / RX 540X/550/550X]/WhiskeyLake-U GT2 [UHD Graphics…...

中学学习难点管理思维魔方

中学学习难点管理思维魔方 点&#xff1a;识别难点 预习难点学习难点考试错漏 线 难题整理 导图笔记 集中训练 各个突破询问老师同学个人深入思考反复阅读练习 题目改型 举一反三一题多问一题多解 面&#xff1a;定期确认 导出难题&#xff0c;重新完成 体&#xf…...

静态成员不依赖于特定对象的内容

静态成员不依赖于特定对象的内容这一概念主要涉及到面向对象编程中的静态成员&#xff08;包括静态变量和静态方法&#xff09;。为了详细解释这一点&#xff0c;我们需要从以下几个方面来理解&#xff1a; 1. 面向对象编程基础 在面向对象编程中&#xff0c;类是对象的蓝图&…...

使用开放数据、ArcGIS 和 Sklearn 测量洛杉矶的城市相似性

城市规划人员希望找到具有相似城市结构&#xff08;街道网络、建筑结构、土地使用类型、人口密度&#xff09;和人口统计数据&#xff08;收入、文化、年龄&#xff09;的地方。在本文中&#xff0c;我将介绍我为量化邻里相似性而确定的方法和决策&#xff0c;并展示数据科学方…...

线上虚拟展厅有哪些应用场景?

虚拟展厅利用数字技术和三维建模技术创建一个虚拟的展览环境&#xff0c;使参观者可以通过计算机、智能手机、平板电脑等设备远程参观展览。其应用场景十分广泛&#xff0c;具体来说包括以下几个方面&#xff1a; 艺术展览&#xff1a; 通过线上虚拟展厅&#xff0c;人们可以…...