事務(wù)未提交會通信mysql。根據(jù)相關(guān)資料查詢,在于數(shù)據(jù)庫事務(wù)的隔離級別,mysql默認(rèn)下為readrepeatable,是不能讀取未提交的內(nèi)容的,將其設(shè)置為readuncommitted即可。
成都創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站建設(shè)、網(wǎng)站制作與策劃設(shè)計,高郵網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:高郵等地區(qū)。高郵做網(wǎng)站價格咨詢:18980820575
事務(wù)未提交會提示:Lock wait timeout exceeded; try restarting transaction等待超時。
在mysql查詢中執(zhí)行以下指令
select * from information_schema.innodb_trx
用kill 殺死對應(yīng)的線程id即可
打開全日志后可以看。
打開的方法是:
1、5.0的版本
在配置文件的mysqld段中,增加
log=/var/log/mysql.log(或者其他的你想放日志的路徑)
然后重啟數(shù)據(jù)庫
2、如果是5.1的版本
在配置文件的mysqld段中,增加
general_log_file=/var/log/mysql.log
然后重啟數(shù)據(jù)庫
5.1版本也可以不用重啟,全局設(shè)置一下,方法是:
set global general_log=1;
set global general_log_file=/var/log/mysql.log;
打開日志后,查看未提交事務(wù)的方法為:
連接到數(shù)據(jù)庫后,會分配一個連接id,然后追蹤此連接id,找到此連接執(zhí)行的所有sql,如果有begin,而沒有commit,那么這個語句就是未提交的。
如何查詢mysql事務(wù)未提交
打開全日志后可以看。
打開的方法是:
1、5.0的版本
在配置文件的mysqld段中,增加
log=/var/log/mysql.log(或者其他的你想放日志的路徑)
然后重啟數(shù)據(jù)庫
2、如果是5.1的版本
在配置文件的mysqld段中,增加
general_log_file=/var/log/mysql.log
然后重啟數(shù)據(jù)庫
5.1版本也可以不用重啟,全局設(shè)置一下,方法是:
set global general_log=1;
set global general_log_file=/var/log/mysql.log;
打開日志后,查看未提交事務(wù)的方法為:
連接到數(shù)據(jù)庫后,會分配一個連接id,然后追蹤此連接id,找到此連接執(zhí)行的所有sql,如果有begin,而沒有commit,那么這個語句就是未提交的。
如果不提交,需要rollback
解決的辦法
innodb_lock_wait_timeout 鎖定等待時間改大 my.ini文件: #innodb_lock_wait_timeout = 50默認(rèn)參數(shù):innodb_lock_wait_timeout設(shè)置鎖等待的時間是50s,修改為 innodb_lock_wait_timeout = 500
如果MySQL存在沒有提交的事務(wù),那么這時候 AUTOCOMMIT 自動提交的參數(shù)應(yīng)該是為 0 的。不過如果你通過其他的語言的MySQL驅(qū)動來操作的話,這些驅(qū)動一般都帶有自動恢復(fù) AUTOCOMMIT 的功能,在請求處理完成后會自動 ROLLBACK 沒有處理的事務(wù)。