Linux启动mysql报错

甲方公司意外停电,所有服务器重启后,发现部署在Linux上的mysql数据库启动失败.再加上老员工离职,新接手项目,对Linux系统了解不多,解决起来用时较多,特此记录。

1.启动及报错

1.1 启动语句1

启动语句1:service mysqld restart
报错1.Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.

1.2启动语句2

启动语句2 service mysql start

报错2.Failed to restart mysqld.service: Unit not found

2.解决方案

2.1解决方案1

解决方案1:检查配置文件 cd /etc/ cat my.cnf
在这里插入图片描述
没有发现问题

2.2 解决方案2

解决方案2:备份数据库,重装mysql mysqldump -u 用户名 -p 密码 数据库名 > 备份文件名.sql
报错 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
但是查看已有备份文件
在这里插入图片描述
但是查看大小为0

2.3 解决方案3

开始搜到了此篇文章:https://www.cnblogs.com/ruiy/p/17610612.html
遇到的情况很类似,但查看日志,发现报错信息不同;
查看最近日志 sudo tail -n 100 /var/log/mysqld.log
在这里插入图片描述

定位到问题:Can’t start server: Bind on TCP/IP port: Permission denied
查找资料,发现此错误通常是因为 MySQL 或其他服务尝试绑定到 TCP/IP 端口时缺乏必要的权限
解决办法如下:
遇到 “Can’t start server: Bind on TCP/IP port: Permission denied” 错误,通常是因为 MySQL 或其他服务尝试绑定到 TCP/IP 端口时缺乏必要的权限。以下是一些常见的解决方法:

解决方法

  1. 检查端口使用情况: 使用以下命令检查端口是否已被其他进程占用(例如,MySQL 默认使用 3306 端口): bash sudo netstat -tuln | grep 3306

  2. 使用超级用户权限启动服务: 如果你不是以 root 用户身份运行 MySQL,可以尝试使用 sudo 启动服务: bash sudo systemctl start mysql 或者: bash sudo service mysql start

  3. 检查 MySQL 配置文件: 确保 MySQL 的配置文件(通常是 /etc/my.cnf/etc/mysql/my.cnf)中指定的端口和绑定地址是正确的。例如: ini [mysqld] bind-address = 127.0.0.1 port = 3306

  4. 检查 SELinux 设置: 如果你的系统启用了 SELinux,可能会阻止 MySQL 绑定端口。可以暂时禁用 SELinux 来检查是否是这个原因: bash sudo setenforce 0
    如果这样解决了问题,建议调整 SELinux 策略,而不是永久禁用。

  5. 检查防火墙设置: 确保防火墙没有阻止 MySQL 的端口(默认是 3306),你可以使用以下命令来检查防火墙规则: bash sudo iptables -L 或者,如果使用 firewalldbash sudo firewall-cmd --list-all

  6. 更改 MySQL 数据目录权限: 如果 MySQL 需要访问特定目录(如数据目录),确保该目录的权限和拥有者是正确的: bash sudo chown -R mysql:mysql /var/lib/mysql

重启 MySQL 服务 在进行上述修改后,不要忘记重启 MySQL 服务以应用更改: bash sudo systemctl restart mysql 或: bash sudo service mysql restart

如果问题仍然存在,请查看 MySQL 的错误日志(通常位于 /var/log/mysql/error.log
/var/lib/mysql/hostname.err),以获取更多信息。

3.问题解决

在检查到第5条时
执行 sudo setenforce 0

问题解决!

使用 sudo cat /var/log/audit/audit.log | grep denied查看拒绝日志,果然看到将数据库端口限制了
在这里插入图片描述
在了解SELinux后,明白了必要性
‌SELinux共有三种模式‌:

  • ‌‌Disabled模式‌:SELinux被关闭,不执行任何安全策略。
  • ‌‌Permissive模式‌:SELinux被启用,但不强制执行安全策略。违反策略的操作会被记录,但不会被阻止。
  • ‌‌Enforcing模式‌:SELinux被启用,并强制执行所有安全策略。违反策略的操作会被拒绝并记录日志。

每种模式的特点和用途

  • ‌Disabled模式‌:适用于开发和测试阶段,可以避免SELinux的干扰,方便进行系统调试和开发。
  • ‌Permissive模式‌:适用于测试阶段,可以帮助管理员发现违反策略的操作,而不会中断系统的正常运行。
  • ‌Enforcing模式‌:适用于生产环境,确保系统的安全性,对违反策略的操作进行严格的控制和记录。

临时修改,使用setenforce 命令。一般调试的时候用的多

  • setenforce 0 //设置为Permissive宽容模式
  • setenforce 1 //设置为Enforcing强制模式

这里,暂时采用了临时修改的方式,启动前修改为宽容模式,启动成功后,修改为强制模式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/880777.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

全站最详细的Python环境配置步骤

1、官网下载IDE JetBrains下载 2、IDE下载、安装步骤 这里展示的是如何在Windows上下载、安装Pycharm工具,Linux的步骤类似。 2.1、选择开发者工具 选择开发者工具 2.2、选择Pycharm 选择Pycharm 2.3、选择下载 选择下载 2.4、选择社区版 一般而言&#xff…

基于SpringBoot+Vue的留守儿童爱心网站系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…

MyBatis的注入问题

对之前文章的补充:MyBatis中的#{}与${}注入问题----原文链接 前言: MyBatis是一个流行的Java持久层框架,用于将对象与数据库中的数据进行映射。然而,如果不当使用,MyBatis也可能受到诸如SQL注入这类的安全问题的影响。…

解决VRM格式模型在Unity中运行出现头发乱飞等问题

1、问题 通过VRoidStudio制作导出的vrm格式的模型,放在unity中使用时,一运行就会出现头发乱飞,没有自然下垂的问题 2、解决方法 将模型下的secondary中的所有VRM Spring Bone脚本中的Drag Force改为1,Hit Radius改为0 修改后…

JAVA笔记 | 实际上用到的策略模式(可直接套用)

自己开发中用到了策略模式,这样写不一定是最好的,但是满足了业务场景跟使用要求,做个笔记,下次有用到可以快速复习跟套用 假设使用场景:有几只宠物,猫跟狗等,要求他们做各种动作,比如…

828华为云征文 | 华为云Flexus云服务器X实例搭建Zabbix网络设备监视系统(Ubuntu服务器运维)

前言 Flexus X实例内嵌智能应用调优算法,性能强悍,基础模式GeekBench单核及多核跑分可达同规格独享型实例的1.6倍,性能模式更是超越多系列旗舰型云主机,为企业业务提供强劲动力。 💼 Flexus X Zabbix:打造…

PWM驱动LED呼吸灯

背景知识:TIM输出比较-CSDN博客 stm32f10x_tim.h函数 // *** OC是Output Compare输出比较函数 void TIM_OC1Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct); void TIM_OC2Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct); void TI…

苹果盛宴:iPhone 16系列领衔,智能穿戴新潮流来袭

在科技界备受瞩目的苹果秋季发布会上,众多新品悉数亮相,从全新的Apple Watch系列到AirPods系列,再到备受期待的iPhone 16系列,每一款产品都以其独特的创新和卓越的性能,再次定义了智能设备的高标准。 本文将带您领略这…

实验5 预备实验2-配置单个的路由器

配置单个的路由器 一、实验目的 此次试验目的是了解思科网络设备的配置基本特点及IOS命令基本操作方法。这些是配置思科设备的重要前提。 二、实验内容及结果 1、实验环境搭建 添加一个模块化的路由器,单击Packet Tracer 5.3的工作区中刚添加的路由器,…

Go实现RabbitMQ消息模式

【目标】 go实现RabbitMQ简单模式和work工作模式 go实现RabbitMQ 消息持久化和手动应答 go实现RabbitMQ 发布订阅模式 go使用MQ实现评论后排行榜更新 1. go实现简单模式 编写路由实现生产消息 实现生产消息 MQ消息执行为命令行执行,所以创建命令行执行函数mai…

【React】react项目中的redux使用

1. store目录结构设计 2. react组件中使用store中的数据——useSelector 3. react组件中修改store中的数据——useDispatch 4. 示例 react-basic\src\store\moduels\counterStore.js import { createSlice } from reduxjs/toolkitconst counterStore createSlice({name: cou…

Flutter屏幕适配

我们可以根据下面有适配属性的Widget来进行屏幕适配 1.MediaQuery 通过它可以直接获得屏幕的大小(宽度 / 高度)和方向(纵向 / 横向) Size screenSize MediaQuery.of(context).size; double width screenSize.width; double h…

【Linux:线程概念】

目录 概念: 创建线程的函数:​编辑 ​编辑 有多进程为什么还需要有多线程? 线程调度的成本为什么低? 进程与线程的区别: 概念: 线程是CPU的基本调度单位,在进程内部运行。在内核中&#xff…

CSS 效果:实现动态展示双箭头

最近写了一段 CSS 样式,虽然不难,但实现过程比较繁琐。这个效果结合了两个箭头,一个突出,一个内缩,非常适合用于步骤导航或选项卡切换等场景。样式不仅仅是静态的,还可以通过点击 click 或者 hover 事件&am…

Java的栈帧和动态链接是什么?

在 Java 的面试过程中,不可避免的一个面试题那就是 JVM,而 JVM 的面试题中,有各种,比如在堆中会被问到的关于垃圾回收机制的相关问题,在栈中会被问到入栈以及出栈的过程,来聊一下关于栈的相关问题&#xff…

C0008.Clion利用C++开发Qt界面,使用OpenCV时,配置OpenCV方法

安装OpenCV 配置环境 配置Clion中的CMakeLists.txt文件 # 设置OpenCV的安装路径 set(OpenCV_DIR "D:/OpenCv_Win/opencv/build/x64/vc16/lib"

分糖果C++

题目&#xff1a; 样例解释&#xff1a; 样例1解释 拿 k20 块糖放入篮子里。 篮子里现在糖果数 20≥n7&#xff0c;因此所有小朋友获得一块糖&#xff1b; 篮子里现在糖果数变成 13≥n7&#xff0c;因此所有小朋友获得一块糖&#xff1b; 篮子里现在糖果数变成 6<n7&#xf…

【算法竞赛】堆

堆是一种树形结构,树的根是堆顶,堆顶始终保持为所有元素的最优值。 有最大堆和最小堆,最大堆的根节点是最大值,最小堆的根节点是最小值。 本节都以最小堆为例进行讲解。 堆一般用二叉树实现,称为二叉堆。 二叉堆的典型应用有堆排序和优先队列。 二叉堆的概念 二叉堆是一棵…

定时器定时中断定时器外部中断

基础背景&#xff1a;TIM定时中断-CSDN博客 TIM的函数 // 恢复缺省设置 void TIM_DeInit(TIM_TypeDef* TIMx); // 时基单元初始化&#xff0c;第一个参数TIMx选择某个定时器&#xff0c;第二个参数是结构体&#xff0c;包含了配置时基单元的一些参数。 void TIM_TimeBaseInit…

blender解决缩放到某个距离就不能继续缩放

threejs中也存在同样的问题&#xff0c;原因相同&#xff0c;都是因为相机位置和相机观察点距离太近导致的。 threejs解决缩放到某个距离就不能继续缩放-CSDN博客 blender中的解决方案 1、视图中心->视图锁定->选择你想看的物体