您好,登錄后才能下訂單哦!
前一段時(shí)間在MySQL中歸檔整理歷史數(shù)據(jù)時(shí)發(fā)現(xiàn)有很多的SQL無法被執(zhí)行,剛剛開始以為時(shí)寫的SQL語句有問題,在把所有在執(zhí)行的SQL拿出來看時(shí)發(fā)現(xiàn)語法并沒有錯(cuò),但是在INSERT語句執(zhí)行時(shí)報(bào)錯(cuò):
而把INSERT語句LIMIT 1條插入是沒有問題的。初步估計(jì)是INSERT的事務(wù)過大,去查了下資料才知道原來MySQL在創(chuàng)建臨時(shí)表時(shí)缺省會將數(shù)據(jù)文件放在系統(tǒng)的/tmp目錄下如果系統(tǒng)的/tmp目錄空間不大就會無法創(chuàng)建臨時(shí)表,其中該路徑有MySQL的tmpdir參數(shù)控制,由于這個(gè)是歷史數(shù)據(jù)所以每個(gè)要插入的INSERT語句后都跟有SELECT大表必然會創(chuàng)建臨時(shí)表,但系統(tǒng)的/tmp目錄不夠,所以只能修改tmpdir,這個(gè)參數(shù)無法直接修改需要寫入配置文件重啟生效,在大空間的目錄下創(chuàng)建一個(gè)tmp文件夾修改權(quán)限(777)后給tmpdir使用
[mysqld] tmpdir = /data/tmp
再重啟MySQL生效,這樣問題解決。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。