这几天遇到的问题,简单说一下过程。首先是手机客户端异常,没有数据,后来网站页面没数据,页面异常。(客户端接口和网站都是使用同一台服务器,穷,没办法)
于是判断为数据库问题,远程连接,连接上了数据表不能打开。
于是尝试重启数据库,失败,提示无法开启进程pid文件。重启系统,其他服务都可以打开,唯独mysql 启动不了。(远程连接,所以看不到开机过程)。看了日志,有提示日志文件过大,于是删了,还是提示失败。后来仔细看,提示mysqld部分语句有问题。bin/sed cannot execute binary file。心急折腾了一下,重启系统,后来就连接不上了,叫机房看,说机器重启了,但是网络不通。
查了很多资料,初步估计是很多命令无法执行 cannot execute binary file。网上找到的方法是重新安装命令,可是远程已经连接不上,只能到机房去看了。
由于不是很熟,必须一边上网一边处理,想借个笔记本进去,机房技术说没有,建议拆设备出来处理。
在办公室开机后,果然看到很多cannot execute binary file,很多服务无法启动。ls -la /bin 发现了不能用的命令都在同一个时间(16:50)被修改了。
列出被修改过的命令
ls -la /bin | grep '16:50'
于是尝试挂载光盘修复命令
mount /dev/dvd /mnt/cdrom
折腾了好久才发现我的安装光盘没有命令安装包。想用光盘启动时rescue也没有找到菜单。
只好回家再想办法了。幸好之前已经下载了iso。这要提醒一下,我的系统是centos 6.3 下载了两份安装盘,一份live cd, 一份是两个iso的安装盘, live cd 是没有命令安装包(rpm)的。
回到办公室,重新挂载光盘,进入Package目录。
不知道命令属于那个安装包的 可以先
rpm -qf `which 命令`
查询将列出包名 (注意这个`不是分号,是键盘英文输入法下,esc下面那个键。)
执行
rpm -ivh xxx.rpm --force
xxx是命令对应的安装包名。
一个个命令安装完后,重启系统,一切ok。
2018 年 10 月 30 日 at 上午 11:11
good! super!