从一次MySQLDump无法备份数据开始到数据库出现大量锁表语句再到linux服务器无法启动MySQL等一系列问题

在一次弃用的MySQL数据备份的过程中,出现了备份数据文件大小无法增长的问题
写在前面:其实我们缺少的不是解决问题的方法,而是遇到问题根据点滴积累留下的经验的灵光乍现。
命令如下:

	nohup mysqldump -utest -p123456 -h127.0.0.1 kshop>/home/kshop.sql &

注:Warning:mysqldump不建议显示密码,但不影响使用效果。使用nohup后台执行更稳妥
在这里插入图片描述
问题:进入home目录下使用命令du -sh *查看文件大小,发现文件大小始终为0。
步骤1
起初以为是数据库无法远程连接,或者数据需要等获取库后才能录入文件。(后续证实数据文件是秒增的),在该服务器登录MySQL后发现可以登录并可以查看库表,假设不成立。

步骤2
既然可以登录数据库,就可以查询数据库具体数据以及运行情况,使用命令
SELECT * FROM information_schema.PROCESSLISTWHERE COMMAND<>'sleep';
查看当前数据库运行的SQL以及使用情况。结果发现大量的数据库查询更新语句,以及查看数据库中表结构的数据。导致锁表以及慢查询,所以跟本打不开任何表。

步骤3
既然找到大量锁表语句,kill掉就好了(数据库应该是已经弃用的,有查询调用是因为服务未全部关闭),查看数据库执行情况结果的id,并kill掉 。
示例:kill 3488;
结果部分SQL仍无法杀掉,并导致数据库的卡死。且无法登陆服务器。

步骤4
没办法只能放大招重启服务器,因为之前发生过重启服务器后数据库无法启动的问题(重启服务器是危险性很大的事情),先使用service mysqld stop关掉数据库,结果不出意外服务器重启后数据库启动不起来了。

步骤5
启动MySQL情况如下

[root@server1 ~]# systemctl start mysqld
Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.

如图使用命令

systemctl status mysqld.service

在这里插入图片描述
再使用命令

journalctl -xe
cat /var/log/mysqld

在这里插入图片描述
步骤6
使用如下命令解决如上问题

mkdir -p /var/run/mysqld
chown mysql.mysql /var/run/mysqld/
systemctl start mysqld

这样即可成功启动数据库
但问题再次出现,发现root密码无法登陆

步骤7
通过修改mysql的配置文件可以实现无密码登录,多数配置文件都在 /etc/my.cnf
在这里插入图片描述
在[mysqld]下方添加skip-grant-tables,保存后重启数据库后即可实现无密码登录

mysql -uroot

但是登录后发现数据里原有的库和表都没了!

步骤8
此时使用Navicat也无法登陆,查询之后使用过命令

mysqld_safe --skip-grant-tables

仍无法发现数据库数据。
此时慌得一批,赶紧去找服务器上还有没有数据库文件了,数据库文件的存储目录在配置文件上/etc/my.cnf有记录
在这里插入图片描述
然后发现home下的mysql的文件全都不见了。

步骤9
按理说文件不会无故丢失,最后灵光乍现,怀疑磁盘未挂载。使用命令查看
fdisk -l
在这里插入图片描述在这里插入图片描述
果然!使用命令

mount /dev/mapper/VolGroup-lv_home /home

挂载之后重启数据库后,再次登录,数据库果然回来了,然后再次dump,数据也有了!
所以重启服务器后,需要查看磁盘是否已经挂载,否则会有很多问题无故出现,甚至查不到原因。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值