記一次幫網友解決非法 KILL MySQL服務引發的故障

深圳—遊子 9:55:26node


老鄉 請教你個事mysql

深圳—遊子 9:55:29sql


mysql.sock 丟失,mysql啓不來,請問你們是怎麼解決的?數據庫

Bell 10:04:41服務器


這個文件不是動態生成的麼dom

Bell 10:04:53socket


刪除了,啓動服務時會自動產生的ide

深圳—遊子 10:12:02ui


如今啓動不了atom

深圳—遊子 10:12:15


試了各類方法啓不來


一網友找我,說是使用MySQL提示以下錯誤:

ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)

首先想的是看下服務正常不:

netstat -tunlp|grep 3306

說是沒有服務進程

說你啓動服務看看

/etc/init.d/mysql start

提示以下:

Starting MySQL... ERROR! The server quit without updating PID file (/var/lib/mysql/localhost.localdomain.pid)

  按照以往的正常思路是,首先看看/var/lib/mysql目錄的屬主屬組,權限,查看一切正常。又看了下磁盤空間,innode也徹底正常。

Bell 10:17:54


在這故障以前你作了什麼都

深圳—遊子 10:18:16


作了權限設置

Bell 10:18:27


具體的發過來我看下


Bell 10:18:35

作完後重啓了嗎

深圳—遊子 10:20:55
delete from mysql.user where password='';   
update user set Host='IP' where user='root' and Host='%';  select User,Host,Password from mysql.user;  service mysql restart
Bell 10:21:53
作了權限設置後,不用重啓服務吧

這時就想到確定是KILL MySQL服務了,因而要來了日誌,以下:


2016-12-01 15:13:01 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp
 server option (see documentation for more details).
2016-12-01 15:13:01 0 [Note] /usr/sbin/mysqld (mysqld 5.6.28) starting as process 19651 ...
2016-12-01 15:13:01 19651 [Note] InnoDB: Using atomics to ref count buffer pool pages
2016-12-01 15:13:01 19651 [Note] InnoDB: The InnoDB memory heap is disabled
2016-12-01 15:13:01 19651 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2016-12-01 15:13:01 19651 [Note] InnoDB: Memory barrier is not used
2016-12-01 15:13:01 19651 [Note] InnoDB: Compressed tables use zlib 1.2.3
2016-12-01 15:13:01 19651 [Note] InnoDB: Using Linux native AIO
2016-12-01 15:13:01 19651 [Note] InnoDB: Not using CPU crc32 instructions
2016-12-01 15:13:01 19651 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2016-12-01 15:13:01 19651 [Note] InnoDB: Completed initialization of buffer pool
2016-12-01 15:13:01 19651 [Note] InnoDB: Highest supported file format is Barracuda.
2016-12-01 15:13:01 19651 [Note] InnoDB: 128 rollback segment(s) are active.
2016-12-01 15:13:01 19651 [Note] InnoDB: Waiting for purge to start
2016-12-01 15:13:02 19651 [Note] InnoDB: 5.6.28 started; log sequence number 180311887
2016-12-01 15:13:02 19651 [ERROR] /usr/sbin/mysqld: unknown variable 'sql_modcheduler=ONi_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
'
2016-12-01 15:13:02 19651 [ERROR] Aborting

  看完日誌,再次溝通得知,果真是KILL MySQL服務了,並且不至一次。而且全部的數據庫服務器都這樣操做過,冒冷汗啊!!!我說還作什麼了,他說還改了配置文件,加了一條EVENT ,沒管它,索性作了以下操做:

mv my.cnf  my.cnf.ori
/etc/init.d/mysql start

哈哈,久違的啓動成功提示出來了終於。以後讓他登陸上去看下數據對不對,看了下沒有問題。

總結:

  最後通過和他的溝通,一樣的環境,一樣的數據庫版本,一樣的配置,只有這一臺啓動不起來。通過分析判斷得出,這次故障的緣由爲:kill MySQL服務進程,非法關閉服務致使本次故障。根據老司機經驗,隨便kill數據庫服務進程,特別是kill -9,是會致使各類各樣的數據庫故障的!你們引覺得戒吧!!!

相關文章
相關標籤/搜索