在Mysql运行的时候,有时候会stop不了,这时候我们就会想直接把他的进程kill掉。

但是,有时候kill完了之后,在去start它就会直接抛异常了。。。

ERROR! The server quit without updating PID file /usr/local/mysql/mysql5/data/VM_0_9_centos.pid

看到这个异常,别慌,我们先把Mysql下面自己的数据库的文件夹备份出来,以及mysql的系统库mysql里面的文件也备份出来,

还有data目录下的ibdata1、 ib_logfile0和ib_logfile1文件也要备份一下(这里是表结构以及数据的东西),

接着,我们把mysql的data目录(也就是存放数据库文件的目录)删掉,然后进行mysql的初始化

./mysql_install_db --user=mysql --datadir=/usr/local/mysql/data/mysql

初始化完了之后,再把权限给回去

cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld

这时候,我们启动mysql的话,就会发现,没有密码怎么进去哦。。。。

然后,我们来修改一下mysql的密码吧

编辑my.cnf允许空密码登录

[root@7Core ~]# vi /etc/my.cnf
#在[mysqld]下加入一行
skip-grant-tables=1

重新启动Mysql服务

[root@7Core ~]# systemctl restart mysqld.service

使用Root登录数据库、使用mysql数据库、修改root密码、退出数据库

[root@7Core ~]# mysql -u root
mysql> use mysql;
mysql> update user set authentication_string = password('新密码'),password_last_changed=now() where user='root';
mysql> exit;

再次打开my.cnf,将skip-grant-tables=1删掉,保存退出

[root@7Core ~]# vi /etc/my.cnf
#删除skip-grant-tables=1

重启Mysql服务

[root@7Core ~]# systemctl restart mysqld.service

这时候我们就可以用账号密码登入了,但是第一次登入的时候,需要去修改一下密码,不然不会让你进行其他操作的

mysql -uroot -p
-- 输入密码登入
-- 然后修改密码
alter user 'root'@'localhost' identified by '新密码';

这时候远程登入数据库应该是会报1130错误的,我们需要修改一下host

use mysql;
update user set host = '%' where user ='root';

这时候就可以去恢复一下数据库的文件了

把你备份的data目录下面要恢复的数据库名对应的文件夹复制到新的datadir目录下面去,数据库的表就恢复了。、

但是这时候,存储过程和函数还是没有的,需要将备份的mysql系统数据库下面的名字叫proc的.frm和.MYD还有.MYI文件复制到datadir文件夹下面去,覆盖掉现有的文件,

此时,表结构和存储过程都已经恢复了,但是打开mysql的表还是会提示表不存在,这时候,我们在把之前备份的data文件夹里面的

ibdata1、 ib_logfile0和ib_logfile1文件复制替换到现有数据库中,

这样就恢复成功了。

如果以上内容对你有帮助,可以点个推荐哦,谢谢

记一次Mysql数据库Kill完之后启动不起来的解决方案的更多相关文章

  1. 记一次mysql数据库被勒索(下)

    背景: nextcloud的mysql数据库被黑,删库勒索.参考:记一次mysql数据库被勒索(上) mysql数据库恢复成功,nextcloud还是无法连接.参考:记一次mysql数据库被勒索(中) ...

  2. MySql数据库导出完整版(导出数据库,导出表,导出数据库结构)

    MySql数据库导出完整版(导出数据库,导出表,导出数据库结构) 用MySqlCE导出数据库脚本时,如数据库中包含中文内容,则导出异常. 现在可以通过mysqldump.exe直接导出数据库脚本步骤如 ...

  3. 记一次mysql数据库被勒索(中)

    背景在上一篇文章里面已经提过了. 现在面临的问题是nextcloud没有mysql数据库,用不起来了. 因为文件没丢,一种方法是启动新的mysql数据库,把文件重新提交一次. 为了程序员的面子,没有选 ...

  4. 初码-Azure系列-记一次MySQL数据库向Azure的迁移

    初码Azure系列文章目录 还在继续给客户迁移不同的系统到Azure,这一次是一个系统的MySQL数据库要迁移,将迁移过程记录一下 原系统环境 数据库版本:MySQL Community Editio ...

  5. 记一次mysql数据库失而复得过程

    背景: 由于是自己买的vps搭建的博客,用的是军哥的一键lnmp源码编译安装的,文章也就几篇,对备份并不太重视,想着等服务器快到期的时候备份一下不就行了. 后来在该服务器上测试lnmp分别编译编译安装 ...

  6. 记一次mysql数据库被勒索(上)

    家里搞了台旧电脑做NAS,安装了nextcloud,选择了mysql做为数据库. 当时也没有想太多,mysql数据库密码随便设置了个123456,用的一切正常. 然后,听说可以找电信申请换个公网IP的 ...

  7. MySQL数据库导入或者同步大量数据时数据丢失解决方案

    相信大家都经常遇到这样的情况,我们在编码的过程中经常需要在调试代码的时候切换到本地的数据库上做修改调试,如果当测试数据库的数据在几十万或者上百万数据的时候,我们无论是通过恢复备份/导入SQL的方式来把 ...

  8. 解决win10安装MySQL数据库出现服务无法启动的问题

    安装mysql的时候一直出现这个问题,在网上找了很多种方法,终于解决了这个问题. 我在官网下载的安装包解压后没有my.ini文件,需要自己添加(红字不要复制) [mysql]# 设置mysql客户端默 ...

  9. 记一次MySQL数据库拒绝访问的解决过程

    问题背景 用wordpress搭博客,数据库采用MySQL.为了调试方便,创建账户my_account ,允许它从任意主机访问数据库. CREATE USER `my_account`@'%' IDE ...

随机推荐

  1. Kubernetes 服务发现

    目录 什么是服务发现? 环境变量 DNS 服务 Linux 中 DNS 查询原理 Kubernetes 中 DNS 查询原理 调试 DNS 服务 存根域及上游 DNS 什么是服务发现? 服务发现就是一 ...

  2. SAP无法激活表问题

    因为修改了表结构导致无法激活,刚开始以为是数据库没有调整,然后试着运行SE14,发现还是报错 这个时候就要看看数据库服务器时候正常,输入事务码ST04,查看概览,发现磁盘已满 登录HANA Studi ...

  3. mysql 输入show databases 没反应

    我是小白,大佬勿喷 *** mysql 输入show databases 没反应 一句话 不要忘记使用MySQL时在命令后加;哦 * * * 在Linux输入以下命令 mysql 终端显示以下文本 W ...

  4. 白话--长短期记忆(LSTM)的几个步骤,附代码!

    1. 什么是LSTM 在你阅读这篇文章时候,你都是基于自己已经拥有的对先前所见词的理解来推断当前词的真实含义.我们不会将所有的东西都全部丢弃,然后用空白的大脑进行思考.我们的思想拥有持久性.LSTM就 ...

  5. ubuntu16.04安装Ros(kinetic版本)【亲测好用】

    准备 1.ubuntu16.04 64位桌面版 ps:关于系统的下载和安装这里不做介绍,请自行百度,不是介绍重点 2.更改源 图上的几个勾默认是选上的,如果没有选上,选成上图这样(如果修改过勾,点击关 ...

  6. Ubuntu安装时出现“failed to load ldlinux.c32”

    Ubuntu安装时出现“failed to load ldlinux.c32” 利用UltraISO制作了ubuntu 18.04的U盘启动,开机F12键USB启动时出现 1 2 Failed to ...

  7. Nacos(二):SpringCloud项目中接入Nacos作为注册中心

    前言 通过上一篇文章:Nacos介绍简单了解了Nacos的发展历程和现状,本文我们开始Nacos试水的第一步: 使用Nacos做注册中心 上周末(7.6)Nacos发布了V1.1.0版本,这次更新支持 ...

  8. react antd 关于selectedRows 的问题

    在table中,经常会用到单选和多选的功.这里会有一个方法, 当触发onchange的时候回有两个数组,[selectedRowKeys, selectedRows],当前选中的keys和每一项, 这 ...

  9. HDU 2147

    题意略. 思路: 题中提到的3种操作,一个是将长方形的n减少1,一个是将m减少1,一个是将n和m同时减少1,都是将长方形规模减少的的操作. 现在我们可以知道,(1,1)先手必输:(1,2),(2,1) ...

  10. Java并发编程——线程池的使用

    在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统 ...