查看MySQL數據庫的死鎖日志
成都創新互聯提供高防服務器租用、云服務器、香港服務器、成都服務器托管等
1. 使用終端或命令提示符登錄到MySQL,輸入命令:mysql -h xxxx.xxx.xxx -P 3306 -u username -p?解釋:xxxx.xxx.xxx是數據庫IP地址,username是數據庫用戶名,輸入命令后,會讓你輸入username對應的密碼,就可以登錄了
2. 如何查看MySQL數據庫的死鎖信息?在MySQL客戶端下輸入命令:?show engine innodb status \G;
3. 如何定位MySQL數據庫的死鎖信息?在打印出來的信息中找到“LATEST DETECTED DEADLOCK”一節內容,看圖中紅線
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鎖,產生死鎖。
1.查看表被鎖狀態
2.查看造成死鎖的sql語句
3.查詢進程
4.解鎖(刪除進程)
5.查看正在鎖的事物? (8.0以下版本)
6.查看等待鎖的事物?(8.0以下版本)
可直接在mysql命令行執行:show engine innodb status\G;
查看造成死鎖的sql語句,分析索引情況,然后優化sql然后show processlist;
show status like ‘%lock%’
show OPEN TABLES where In_use 0; 這個語句記錄當前鎖表狀態
另外可以打開慢查詢日志,linux下打開需在my.cnf的[mysqld]里面加上以下內容:
slow_query_log=TRUE(有些mysql版本是ON)
slow_query_log_file=/usr/local/mysql/slow_query_log.txt
long_query_time=3
擴展資料:
MySQL鎖定狀態查看命令
Checking table:正在檢查數據表(這是自動的)。?
Closing tables:正在將表中修改的數據刷新到磁盤中,同時正在關閉已經用完的表。這是一個很快的操作,如果不是這樣的話,就應該確認磁盤空間是否已經滿了或者磁盤是否正處于重負中。
Connect Out:復制從服務器正在連接主服務器。?
Copying to tmp table on disk:由于臨時結果集大于tmp_table_size,正在將臨時表從內存存儲轉為磁盤存儲以此節省內存。
Creating tmp table:正在創建臨時表以存放部分查詢結果。
deleting from main table:服務器正在執行多表刪除中的第一部分,剛刪除第一個表。
網頁標題:mysql怎么查看表死鎖,mysql如何查看鎖表
當前鏈接:http://vcdvsql.cn/article36/hsjpsg.html
成都網站建設公司_創新互聯,為您提供外貿網站建設、搜索引擎優化、網頁設計公司、網站排名、網站建設、企業建站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯