通過代碼解鎖。

成都創(chuàng)新互聯(lián)是一家網(wǎng)站設計公司,集創(chuàng)意、互聯(lián)網(wǎng)應用、軟件技術為一體的創(chuàng)意網(wǎng)站建設服務商,主營產品:響應式網(wǎng)站建設、成都品牌網(wǎng)站建設、成都營銷網(wǎng)站建設。我們專注企業(yè)品牌在網(wǎng)站中的整體樹立,網(wǎng)絡互動的體驗,以及在手機等移動端的優(yōu)質呈現(xiàn)。網(wǎng)站設計、網(wǎng)站建設、移動互聯(lián)產品、網(wǎng)絡運營、VI設計、云產品.運維為核心業(yè)務。為用戶提供一站式解決方案,我們深知市場的競爭激烈,認真對待每位客戶,為客戶提供賞析悅目的作品,網(wǎng)站的價值服務。
代碼如下 ?
1set global max_connections=4000;
增加允許的最大連接數(shù),先讓前臺網(wǎng)站可以正常工作。
回過頭google :mysql unauthenticated user
果然,遇到此類問題的人很多,問題在于mysql的反向ip地址解析,配置參數(shù)里加上skip-name-resolve就可以。
補充
一、查看進程運行情況(會話1)
代碼如下 ?
1mysql select id,user,host,db,command,time,state from processlist a;+—-+——+—————–+——————–+———+——+———–+| id | user | host | db | command | time | state|+—-+——+—————–+——————–+———+——+———–+| 40 | root | localhost:14046 | information_schema | Query | 0 | executing|| 39 | root | localhost:13992 | chf | Sleep | 251 ||| 38 | root | localhost:13991 | chf | Sleep | 251 ||+—-+——+—————–+——————–+———+——+———–+3 rows in set (0.00 sec)
二、構造表被鎖現(xiàn)象
1)鎖住表(會話1)
代碼如下 ?
1mysqlLOCK TABLES chf.disc02 READ;或者–LOCK TABLES chf.disc02 WRITE;
2)執(zhí)行dml操作(會話2)
代碼如下 ?
1mysqldelete from chf.disc02 limit 1;–會話處于卡死狀態(tài)
3)查詢進程運行情況(會話1)
代碼如下 ?
1mysql select id,user,host,db,command,time,state from processlist a;+—-+——+—————–+——————–+———+——+———–+| id | user | host | db | command | time | state|+—-+——+—————–+——————–+———+——+———–+| 41 | root | localhost:14358 | chf | Query | 5 | Locked|| 40 | root | localhost:14046 | information_schema | Query | 0 | executing|| 39 | root | localhost:13992 | chf | Sleep | 343 ||| 38 | root | localhost:13991 | chf | Sleep | 343 ||+—-+——+—————–+——————–+———+——+———–+
4 rows in set (0.01 sec)
說明:發(fā)現(xiàn)進程id為41的進程狀態(tài)為Locked
三、解鎖操作
1)刪掉被鎖進程(會話1)
代碼如下 ?
1mysql kill 41;
出現(xiàn)現(xiàn)象(會話2)
ERROR 2013 (HY000): Lost connection to MySQL server during query
2)查看進程(會話1)
代碼如下 ?
1mysql select id,user,host,db,command,time,state from processlist a;+—-+——+—————–+——————–+———+——+———–+| id | user | host | db | command | time | state|+—-+——+—————–+——————–+———+——+———–+| 40 | root | localhost:14046 | information_schema | Query | 0 | executing|| 39 | root | localhost:13992 | chf | Sleep | 298 ||| 38 | root | localhost:13991 | chf | Sleep | 298 ||+—-+——+—————–+——————–+———+——+———–+3 rows in set (0.01 sec)
四、批量解鎖
代碼如下 ?
1mysql select concat(‘kill ‘,id,’;') kill_process from processlist a where a.state=’Locked’;+————–+| kill_process |+————–+| kill 43; || kill 42; |+————–+2 rows in set (0.01 sec)
Note:
1)可以使用show processlist查看當前用戶連接
如果是root帳號,你能看到所有用戶的當前連接。如果是其它普通帳號,只能看到自己占用的連接。show processlist;只列出前100條,如果想全列出請使用show full processlist;
2)在構造鎖的會話中,使用unlock tables;也可以解鎖
總結一下原因,大概如下:
因為mysql默認會根據(jù)客戶端的ip地址反向解析,用于用戶登錄授權之用。不過正常情況下,很少會有人這樣用。ip地址反向解析是很慢的,尤其是高負荷的mysql,每秒種幾百次甚至更高的請求,這個請求壓到本地的dns服務器上,dns服務器說不定會懷疑你在惡意請求,然后不理你了,然后這些登錄請求就掛在那里,后面的連接還持續(xù),然后越積越多,然后就達到mysql的最大連接數(shù)據(jù)限制了,然后新的連接就直接被拒,得到連接數(shù)過多的消息。
因為mysql配置文件使用的之前的配置文件,當時跟web同服務器,所以不存在這個問題。
這也正好解釋了為什么phpMyAdmin里看mysqld狀態(tài)時,有很多失敗的連接,它們應該就是因反解析失敗而被拒的。
參考資料
MySQL解鎖.壹聚教程[引用時間2018-1-21]
可直接在mysql命令行執(zhí)行:show engine innodb status\G; 查看造成死鎖的sql語句,分析索引情況,然后優(yōu)化sql然后show processlist;另外可以打開慢查詢日志,linux下打開需在my.cnf的[mysqld]里面加上以下內容:
1)可以使用show processlist查看當前用戶連接
如果是root帳號,你能看到所有用戶的當前連接。如果是其它普通帳號,只能看到自己占用的連接。show processlist;只列出前100條,如果想全列出請使用show full processlist;
2)在構造鎖的會話中,使用unlock tables;也可以解鎖
行級鎖 是說最小粒度的鎖是行級鎖。
當需要更新同一個頁面中的數(shù)據(jù)時,是會升級到頁面鎖的。
當對整個表進行更新時,會使用表級鎖;
如果此時使用一個一個行級鎖,不光浪費資源,也會影響效率。
當前名稱:mysql加鎖失敗怎么辦 mysql加表鎖語句
鏈接地址:http://chinadenli.net/article16/dojgjgg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、移動網(wǎng)站建設、App設計、用戶體驗、網(wǎng)站設計公司、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)