標籤:mysql
深圳—遊子 9:55:26
老鄉 請教你個事 |
深圳—遊子 9:55:29
mysql.sock 丟失,mysql啟不來,請問大家是怎麼解決的? |
Bell 10:04:41
這個檔案不是動態產生的麼 |
Bell 10:04:53
刪除了,啟動服務時會自動產生的 |
深圳—遊子 10:12:02
現在啟動不了 |
深圳—遊子 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,是會導致各種各樣的資料庫故障的!大家引以為戒吧!!!
本文出自 “雲端運算與大資料” 部落格,請務必保留此出處http://linuxzkq.blog.51cto.com/9379412/1878839
記一次幫網友解決非法 KILL MySQL服務引起的故障