最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL下PID文件丟失的相關(guān)錯(cuò)誤的解決方法

 更新時(shí)間:2015年07月08日 11:05:56   投稿:goldensun  
這篇文章主要介紹了MySQL下PID文件丟失的相關(guān)錯(cuò)誤的解決方法,具體的提示可能會(huì)是"mysql PID file not found and Can’t connect to MySQL through socket mysql.sock",需要的朋友可以參考下

今天同事A找到我,說是Mysql server X的負(fù)載很高,查詢很慢。他自己搗鼓了一陣未果后,我們一起看了下。

[root@redhat var]# uname -a
Linux xxx 2.6.18-128.el5 #1 SMP Wed Dec 17 11:41:38 EST 2008 x86_64 x86_64 x86_64 GNU/Linux

[root@redhat var]# mysql -u root -p -e “select version();”
+------------+
| version() |
+------------+
| 5.1.32-log |
+------------+

同事A的操作:
A一看mysql server有問題第一反應(yīng)是重啟mysql server,囧!!o(╯□╰)
但是又使用了錯(cuò)誤的命令

[root@redhat var]# /var/lib/mysql/libexec/mysqld restart ----操作①
100708 14:43:53 [ERROR] Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!
100708 14:43:53 [ERROR] Aborting
100708 14:43:53 [Note] /var/lib/mysql/libexec/mysqld: Shutdown complete

發(fā)現(xiàn)問題后,他又想起來應(yīng)該是用下面的命令重啟

[root@redhat var]# service mysql restart ----操作②
MySQL manager or server PID file could not be found! [FAILED]
Starting MySQL......

CTRL+C取消

這時(shí)候

[root@redhat var]# ps aux | grep mysql

可以看到,系統(tǒng)又啟動(dòng)了一個(gè)Mysql進(jìn)程,但是過一會(huì)后,會(huì)自動(dòng)消失,這時(shí)候看日志可以發(fā)現(xiàn)以下錯(cuò)誤:

100708 15:26:52 [ERROR] Can't start server: Bind on TCP/IP port: Address already in use
100708 15:26:52 [ERROR] Do you already have another mysqld server running on port: 30017 ?
100708 15:26:52 [ERROR] Aborting

然后后面我們一起看。
首先我用client工具連接,發(fā)現(xiàn)mysql正常。web應(yīng)用連接數(shù)據(jù)庫也正常只是查詢很慢。
其次我在命令下面,連接:

[root@redhat var]# mysql -u root -p

提示:

Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

這時(shí)候同事A提醒我,可以重啟服務(wù)沒關(guān)系。囧,o(╯□╰)o,他在建議我重啟解決問題。
好吧,如他所愿。于是我先:

[root@redhat var]# service mysql stop
MySQL is running but PID file could not be found

然后去mysql data dir下面查看,果然沒有pid file。
這時(shí)候我的第一反應(yīng)是配置文件不對(duì),導(dǎo)致不能正常停止和重啟。
由于server是好的,因此我沒有急著去比較以前備份的/etc/my.cnf.bak和/etc/my.cnf。
我們先查找負(fù)載高的原因。因?yàn)槊钚邢聼o法進(jìn)入mysql,在client下使用

復(fù)制代碼 代碼如下:
show processlist;

可以看到里面有很多l(xiāng)ocked的查詢,其中等待時(shí)間最久的一個(gè)是一個(gè)select查詢,顯示正在sending data,然后其余都是locked。
猜想是sending data的線程占用了“所有的分配給mysql的資源”,導(dǎo)致后來的線程全部掛起,由于“查詢(線程)是依次執(zhí)行的”,后面locked的線程一直在等待前面sending data的線程結(jié)束。(這一段是猜想的…)
sending data的這個(gè)線程U是一個(gè)select 查詢,這個(gè)select對(duì)6張表進(jìn)行了連接(公司的一個(gè)實(shí)習(xí)生提交的一個(gè)查詢),其中有兩張表的數(shù)據(jù)量在10w左右,另外有張data表數(shù)據(jù)量在 1000w左右,另外還有sum(distinct ) ,group by,order by… 可以想象下…不知道要到何年何月這個(gè)查詢才能執(zhí)行完。
這個(gè)sending data的慢查詢的processid為799,當(dāng)機(jī)立斷運(yùn)行

復(fù)制代碼 代碼如下:
kill 799

然后再運(yùn)行

復(fù)制代碼 代碼如下:
show processlist;

可以看到前面locked的線程在一個(gè)個(gè)依次執(zhí)行,后面還有好多個(gè)跟線程U類似的select線程,全部kill掉后,被堵塞的別的正常的幾個(gè)Update,select,insert操作很快就執(zhí)行完了。
而后,web應(yīng)用恢復(fù)正常,速度變快。
返回linux命令行,使用

[root@redhat var]# top
<shift+m 按內(nèi)存使用排序>
<1 顯示cpu使用情況>

這時(shí)候可以發(fā)現(xiàn)server負(fù)載恢復(fù)正常。

下面解決無法正常關(guān)閉重啟的情況。
也就是因?yàn)榍懊嫱碌恼`操作引起的

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
和MySQL manager or server PID file could not be found! [FAILED]

的錯(cuò)誤。
我前面不是懷疑是配置文件里面有什么無法識(shí)別的參數(shù)選項(xiàng)么。
通過

[root@redhat var]# diff /etc/my.cnf /etc/my.cnf.bak

發(fā)現(xiàn),配置文件沒有問題。

#我的server的hostname,mysql pid文件默認(rèn)名字為hostname.pid,如果沒有在/etc/my.cnf里面指定特定和pid filename和pid file path的話,這個(gè)文件是跟mysql數(shù)據(jù)在一起的。

[root@redhat var]# diff /etc/my.cnf /etc/my.cnf.bak

這時(shí)候通過

#切換到mysql data dir(mysql的數(shù)據(jù)文件目錄下)
#你們的mysql data dir或許跟我的不一樣哦,我的是/var/lib/mysql/var/
[root@redhat var]# cd /var/lib/mysql/var/

獲取mysql用戶運(yùn)行的mysql進(jìn)程的 pid,然后導(dǎo)入到hostname.pid文件里面

[root@redhat var]# echo `ps aux | grep mysql | grep "user=mysql" | grep -v "grep" | awk '{print $2}'`>> redhat.pid
#注意這里的redhat.pid跟hostname相關(guān),這里是我的hostname.pid

將文件的屬主和屬主組改為mysql:mysql

[root@redhat var]# chown mysql:mysql redhat.pid

然后運(yùn)行

[root@redhat var]# mysql -u root -p

還是會(huì)提示:

Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
[root@redhat var]# ls /tmp | grep sock

果然沒有mysql.sock這個(gè)文件

但是這時(shí)候運(yùn)行

[root@redhat var]# service mysql status

顯示

MySQL running (10949) [ OK ]

恩,pid file文件恢復(fù)正常,然后運(yùn)行

[root@redhat var]# service mysql restart
Shutting down MySQL. [ OK ]
Starting MySQL. [ OK ]

這時(shí)候再運(yùn)行

[root@redhat var]# ls /tmp | grep sock

可以發(fā)現(xiàn)重啟后,/tmp下有了mysql.sock這個(gè)文件。

大家可以搜索下mysql.sock的用途以及使用產(chǎn)生等等。

同事A的 操作① 導(dǎo)致pid 文件丟失, 操作② 導(dǎo)致mysql.sock文件丟失,大家感興趣可以去vi mysqld腳本和server mysql腳本,然后導(dǎo)致service mysql status/stop/start/restart運(yùn)行異常,導(dǎo)致命令行下mysql -u root -p登錄mysql異常。

That's all.

相關(guān)文章

  • mysql 松散的索引掃描(Loose index scan)

    mysql 松散的索引掃描(Loose index scan)

    今天讀《High Performance MySQL》,發(fā)現(xiàn)一個(gè)“Loose index scan”,之前完全沒有聽說過。網(wǎng)上查了些資料,這個(gè)叫松散的索引掃描(Loose index scan)
    2016-05-05
  • Mysql索引常見問題匯總

    Mysql索引常見問題匯總

    這篇文章主要介紹了Mysql索引常見問題匯總,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下
    2020-10-10
  • MySQL億級(jí)數(shù)據(jù)平滑遷移雙寫方案實(shí)戰(zhàn)

    MySQL億級(jí)數(shù)據(jù)平滑遷移雙寫方案實(shí)戰(zhàn)

    預(yù)約業(yè)務(wù)與其他業(yè)務(wù)數(shù)據(jù)表存儲(chǔ)在同一個(gè)數(shù)據(jù)庫,當(dāng)其他業(yè)務(wù)出現(xiàn)慢SQL等異常時(shí),會(huì)影響到預(yù)約業(yè)務(wù),為了提高系統(tǒng)穩(wěn)定性和數(shù)據(jù)隔離性,需要將預(yù)約數(shù)據(jù)表從原來的數(shù)據(jù)庫中遷移出來,單獨(dú)建立數(shù)據(jù)庫,涉及到的讀寫場(chǎng)景多,改造成本大,采用 Mybatis插件實(shí)現(xiàn)遷移所需的雙寫等功能
    2024-08-08
  • 淺談mysql8.0新特性的坑和解決辦法(小結(jié))

    淺談mysql8.0新特性的坑和解決辦法(小結(jié))

    這篇文章主要介紹了淺談mysql8.0新特性的坑和解決辦法(小結(jié)),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09
  • MySQL導(dǎo)出所有Index和約束的方法

    MySQL導(dǎo)出所有Index和約束的方法

    這篇文章主要介紹了MySQL導(dǎo)出所有Index和約束的方法,非常實(shí)用的技巧,需要的朋友可以參考下
    2014-08-08
  • MySQL如何實(shí)現(xiàn)事務(wù)的ACID

    MySQL如何實(shí)現(xiàn)事務(wù)的ACID

    這篇文章主要介紹了MySQL如何實(shí)現(xiàn)事務(wù)的四大特性,幫助大家更好的理解和學(xué)習(xí)MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下
    2020-09-09
  • MySQL中約束的實(shí)現(xiàn)示例

    MySQL中約束的實(shí)現(xiàn)示例

    本文主要介紹了MySQL中約束的實(shí)現(xiàn)示例,包括非空約束、唯一約束、主鍵約束、默認(rèn)約束、檢查約束和外鍵約束,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • 淺談MySQL數(shù)據(jù)查詢太多會(huì)OOM嗎

    淺談MySQL數(shù)據(jù)查詢太多會(huì)OOM嗎

    本文主要介紹了淺談MySQL數(shù)據(jù)查詢太多會(huì)OOM嗎?文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • 詳解MySQL中的存取權(quán)限

    詳解MySQL中的存取權(quán)限

    這篇文章主要介紹了詳解MySQL中的存取權(quán)限,針對(duì)用戶使用數(shù)據(jù)庫權(quán)限分配的問題做出說明,需要的朋友可以參考下
    2015-07-07
  • MySQL中存儲(chǔ)的數(shù)據(jù)查詢的時(shí)候如何區(qū)分大小寫

    MySQL中存儲(chǔ)的數(shù)據(jù)查詢的時(shí)候如何區(qū)分大小寫

    這篇文章主要介紹了MySQL中存儲(chǔ)的數(shù)據(jù)查詢的時(shí)候如何區(qū)分大小寫問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04

最新評(píng)論

武安市| 方城县| 邵东县| 赤峰市| 巴林右旗| 曲周县| 响水县| 安徽省| 孟州市| 赣州市| 乐清市| 磴口县| 报价| 黄大仙区| 民和| 康马县| 渝北区| 长武县| 定安县| 海盐县| 班玛县| 修水县| 中卫市| 沅江市| 桃园县| 宁德市| 历史| 肥西县| 邻水| 镶黄旗| 潜山县| 兴海县| 南宫市| 邹平县| 梅州市| 堆龙德庆县| 五指山市| 澎湖县| 沙河市| 家居| 青冈县|