MySQL: mysql is not running but lock exists 的解决方法

yizhihongxing

问题描述:

在使用MySQL时,可能会遇到“mysql is not running but lock exists”的错误提示。这种情况下无法启动MySQL服务。

解决方法:

  1. 查看MySQL进程

在终端中输入命令:

ps -ef | grep mysql

如果存在类似以下输出结果,则表示MySQL进程正在运行中:

mysql    8880     1  0 21:32 ?        00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/lib/mysql/myapp.pid
mysql    9121  8880  0 21:32 ?        00:00:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/lib/mysql/myapp.err --pid-file=/var/lib/mysql/myapp.pid --socket=/var/lib/mysql/mysql.sock

如果没有显示任何结果,表示该服务未启动。

  1. 删除.lock文件

在MySQL守护进程未正常退出而导致MySQL持有.lock文件的情况下,可以通过删除该文件,来解决启动MySQL失败的问题:

sudo rm /var/lib/mysql/*.lock
  1. 重启MySQL服务

执行以下命令重启MySQL服务:

sudo systemctl restart mysqld

也可以尝试使用以下命令来启动MySQL服务:

sudo mysqld_safe --skip-grant-tables &
  1. 调整MySQL配置文件

如果以上方法都无法解决问题,则可以考虑调整MySQL的配置文件my.cnf:

sudo vim /etc/my.cnf

在该文件中加入以下内容:

[mysqld]
innodb_force_recovery = 1

保存后重启MySQL服务。

示例说明:

示例1:

在运行MySQL服务时,提示“mysql is not running but lock exists”的错误。经过上述步骤,发现是由于MySQL守护进程异常,导致MySQL持有了.lock文件。通过删除该文件和重启MySQL服务,成功解决了问题。

示例2:

在进行MySQL备份时,由于备份进程异常导致MySQL服务异常退出。之后尝试启动MySQL服务时,提示“mysql is not running but lock exists”的错误。通过调整MySQL的配置文件my.cnf,将innodb_force_recovery参数设置为1,成功启动了MySQL服务,并修复了数据库文件的错误。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MySQL: mysql is not running but lock exists 的解决方法 - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • 【必知必会的MySQL知识】①初探MySQL

    目录 前言 MySQL是什么? MySQL版本 表的概念 表中的列和数据类型 行 主键 什么是SQL 实践操作 小结 前言 周所周知MySQL已成为全世界最受欢迎的数据库之一。无论你用的何种编程语言在开发系统,数据库基本上都是必不可少的。无论是小型项目开发如我们开发一个个人博客系统,还是构建那些声名显赫的网站如某宝、某讯等,MySQL都有着稳定、可靠、快速等…

    MySQL 2023年5月1日
    00
  • Linux(CentOS7)安装与卸载MySQL8.0图文详解

    Mysql数据库的安装对于开发者来说,是我们必然会面对的问题,它的安装过程其实并不复杂,并且网络上的安装教程也非常多,但是对于新手来说,各种不同形式的安装教程,又给新手们带来了要选择哪种方式进行安装的难题,而且很多时候按照教程也没有能够安装成功,安装过程出现各种各样的错误。 下面记录了我在Linux(Centos 7)环境下安装Mysql的完整过程,实操记录…

    MySQL 2023年4月25日
    00
  • SQL的10种基本书写规则

    SQL(Structured Query Language,结构化查询语言)是一种用于数据库管理系统的计算机语言,它用于从数据库中检索和管理数据。 对于 SQL 初学者,在写 SQL 语句时,只要遵守下面几个书写规则,就可以避免很多错误。 以下是SQL的基本书写规则: SQL语句必须以关键字开始,并以分号(;)结束。例如: SELECT * FROM cus…

    MySQL 2023年3月9日
    00
  • MySQL5.7中的sql_mode默认值带来的坑及解决方法

    MySQL5.7中的sql_mode默认值带来的坑及解决方法 在MySQL5.7版本中,sql_mode的默认值发生了变化,从之前的空值改成了ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE…

    MySQL 2023年5月18日
    00
  • mysql中,创建包含json数据类型的表?创建json表时候的注意事项?查询json字段中某个key的值?

    需求描述:   在mysql数据库中,创建包含json数据类型的表.记录下,在创建的过程中,需要注意的问题. 操作过程: 1.通过以下的语句,创建包含json数据类型的表 mysql> create table tab_json(id bigint not null auto_increment,data json,primary key(id)); …

    MySQL 2023年4月13日
    00
  • Mysql慢查询优化方法及优化原则

    Mysql慢查询优化方法及优化原则 优化原则 在进行Mysql慢查询优化时,需要遵循以下原则: 找出最耗时的SQL语句,将其优化。 尽量使用索引,避免使用全表扫描。 减少大表的查询量,分解大查询为多个小查询。 避免使用子查询和函数。 减少数据传输量。 将常用的SQL语句缓存起来。 优化方法 1. 找出最耗时的SQL语句 使用Mysql自带的慢查询日志,记录查…

    MySQL 2023年5月19日
    00
  • mysql下优化表和修复表命令使用说明(REPAIR TABLE和OPTIMIZE TABLE)

    优化表和修复表是MySQL数据库中两个重要的命令,可以用来修复损坏的表以及提高表的查询效率。下面是具体的使用说明和操作步骤。 REPAIR TABLE命令 REPAIR TABLE命令的作用是修复损坏的表。如果一个表在运行过程中出现了错误,比如遭到非正常的系统关机或者硬件故障等,可能会导致某些数据被破坏。此时,使用REPAIR TABLE命令可以修复这些损坏…

    MySQL 2023年5月19日
    00
  • Semi-Join Subquery优化策略

    Semi-Join Subquery优化策略 Semi-Join Subquery(半连接子查询):对应IN或EXISTS子查询,仅需要检查”外表记录”在”子查询结果集”中是否存在匹配记录,不需要计算”子查询结果集”中记录匹配次数,也不需要返回”子查询结果集”中匹配记录内容 在MariaDB(MySQL)中,常用优化Semi-Join(半连接)的策略有: F…

    MySQL 2023年5月6日
    00
合作推广
合作推广
分享本页
返回顶部