mysql 重啟的問題

2021-05-23 17:53:57 字數 982 閱讀 7756

今天把生產機搞宕機了,緊張了好一會兒。

事情是這樣的:我這幾天發現一**生產機資料庫有死鎖的現象,今天查到了原因,原來是有一種交易的事務執行時間太長(幾十分鐘,最後交易是成功的),導致其他事務無法拿到鎖而失敗。

我在測試環境上測試這種交易,沒有問題;在生產環境的測試庫上測試,可以重現,說明是生產的資料庫問題(生產環境的mysql建了兩個庫,乙個用於測試,乙個用於生產)。但是重現了以後發現生產庫也開始死鎖了,難道是整個庫的鎖?為了讓生產庫不影響交易,我決定重啟mysql(大錯特錯呀,後來發現生產庫的死鎖跟測試庫木有關係,而是恰巧當時生產環境也有一筆死鎖交易),先把資料庫停掉:

/etc/init.d/mysql stop

再啟動/usr/bin/mysqld_safe &

媽媽呀,起不來了!!!

檢視系統日誌 /var/log/messages,有這樣的記錄:

問了好多人,知道是系統selinux的限制(以後再研究)。

解決辦法:

修改/etc/selinux/config配置檔案,設定 selinux=disabled

然後重啟selinux:

重啟生效,如果不想重啟,用命令

[root@mail topic]# setenforce

usage: setenforce [ enforcing | permissive | 1 | 0 ]

[root@mail topic]# setenforce 0

setenforce: selinux is permissive

檢視selinux狀態:

[root@mail topic]# getenforce

permissive

再重啟mysql就正常了。

此時服務已經停了2個小時!

為了不影響正常交易,將出現死鎖的訪問資料庫的部分注釋掉。

然後慢慢解決死鎖的問題,還要研究一段時間。

死鎖解決後還有把注釋掉的**恢復,然後將這段時間的異常交易處理掉。加油!

mysql重啟報錯 mysql 重啟報錯問題處理

停止服務報錯 命令 etc init.d mysqld stop error mysql server pid file could not be found 1.在進行了刪除mysqlbinlog二進位制日誌 操作為 purge binary logs to mysql bin.000002 2....

關於MySQL不斷重啟的問題

前幾日,公司來一新人,不小心把電源踢斷了。當時我的機器上還跑著伺服器程式。以上是背景,然後等我開機重啟服務的時候,發現連線資料庫總是失敗。最常見的就是 cannot connect to mysql by var lib mysql mysql.sock 提示大概就是這樣吧,記不清了。當時使用mys...

關於MySQL不斷重啟的問題

前幾日,公司來一新人,不小心把電源踢斷了。當時我的機器上還跑著伺服器程式。以上是背景,然後等我開機重啟服務的時候,發現連線資料庫總是失敗。最常見的就是 cannot connect to mysql by var lib mysql mysql.sock 提示大概就是這樣吧,記不清了。當時使用mys...