1. 使用終端或命令提示符登錄到MySQL,輸入命令:mysql -h xxxx.xxx.xxx -P 3306 -u username -p 解釋:xxxx.xxx.xxx是數(shù)據(jù)庫IP地址,username是數(shù)據(jù)庫用戶名,輸入命令后,會讓你輸入username對應的密碼,就可以登錄了 2. 如何查看MySQL數(shù)據(jù)庫的死鎖信息 在MySQL客戶端下輸入命令: show engine innodb status \G; 3. 如何定位MySQL數(shù)據(jù)庫的死鎖信息 在打印出來的信息中找到“LATEST DETECTED DEADLOCK”一節(jié)內(nèi)容,看圖中紅線 4. 如何分析日志,定位死鎖原因 看3里面的圖,紫色劃線部分 分析: 事務1,等待 RECORD LOCKS space id 553 page no 376 n bits 368 index `index_user_id` of table `tbj`.`score_user`,這個位置的X鎖 事務2,持有 RECORD LOCKS space id 553 page no 376 n bits 368 index `index_user_id` of table `tbj`.`score_user`這個地方的S鎖 事務2,等待這個地方的X鎖 理論上這個事務2是可以提交的不會,死鎖,但是這個事務日志只打印最后一部分死鎖,信息,這里面隱含的條件是,事務1也持有 RECORD LOCKS space id 553 page no 376 n bits 368 index `index_user_id` of table `tbj`.`score_user`這個地方的S鎖,這樣,事務2不能加X鎖,同時事務1也不能加X鎖,產(chǎn)生死鎖。 |
|