Mysql查詢正在執(zhí)行的事務(wù)以及等待鎖的操作方式
使用navicat
測(cè)試學(xué)習(xí):
首先使用set autocommit = 0;
(取消自動(dòng)提交,則當(dāng)執(zhí)行語(yǔ)句commit或者rollback執(zhí)行提交事務(wù)或者回滾)
在打開(kāi)一個(gè)執(zhí)行update
查詢 正在執(zhí)行的事務(wù):
SELECT * FROM information_schema.INNODB_TRX
根據(jù)這個(gè)事務(wù)的線程ID(trx_mysql_thread_id
):
從上圖看出對(duì)應(yīng)的mysql
線程:一個(gè)94362 (第二個(gè)正在等待鎖)另一個(gè)是93847(第一個(gè)update 正在執(zhí)行 沒(méi)有提交事務(wù))
可以使用mysql命令:kill
線程id 殺掉線程
期間如果并未殺掉持有鎖的線程:則第二個(gè)update語(yǔ)句提示等待鎖超時(shí)
查詢mysql數(shù)據(jù)庫(kù)中還可以使用:
查看正在鎖的事務(wù)
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;
查看等待鎖的事務(wù)
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;
查詢mysql數(shù)據(jù)庫(kù)中存在的進(jìn)程
[sql] view plain copy
select * from information_schema.`PROCESSLIST`(show processlist;)
概念:
mysql中database
、instance
、session
。
mysql中建立一個(gè)會(huì)話,不是和具體的數(shù)據(jù)庫(kù)相連接,而是跟instance建立會(huì)話(即在navicat上執(zhí)行一個(gè)查詢,可以查詢端口下對(duì)應(yīng)的多個(gè)數(shù)據(jù)庫(kù),查詢時(shí)數(shù)據(jù)庫(kù)名+數(shù)據(jù)表名即可)
在一個(gè)物理機(jī)上可以建立多個(gè)instance
,通過(guò)port
來(lái)區(qū)分實(shí)例。
而一個(gè)實(shí)例可以建立多個(gè)數(shù)據(jù)庫(kù),即一個(gè)會(huì)話可以操作一個(gè)實(shí)例上的多個(gè)數(shù)據(jù)庫(kù)。
jdbc協(xié)議連接數(shù)據(jù)庫(kù):jdbc:mysql://localhost:3306/test
jdbc協(xié)議連接本地上端口為3306實(shí)例下的test數(shù)據(jù)庫(kù),則查詢數(shù)據(jù)表時(shí)不需要加上數(shù)據(jù)庫(kù)的名字。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
mysql提示got timeout reading communication packets的解決方法
今天發(fā)現(xiàn)mysql錯(cuò)誤日志中出現(xiàn)got timeout reading communication packets,一般情況因?yàn)椴糠猪?yè)面生成有問(wèn)題導(dǎo)致,這里簡(jiǎn)單分享一下解決方法2019-05-05Linux下安裝Mysql多實(shí)例作為數(shù)據(jù)備份服務(wù)器實(shí)現(xiàn)多主到一從多實(shí)例的備份
由于第一次接觸LINUX,花了三天時(shí)間才算有所成就,發(fā)出來(lái)希望可以給大伙帶來(lái)方便2010-07-07Centos6.4編譯安裝mysql 8.0.0 詳細(xì)教程
這篇文章主要為大家分享了Centos6.4編譯安裝mysql 8.0.0 詳細(xì)教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11