Mysql max_allowed_packet自動(dòng)重置為1024的情況

前幾天在群里有個(gè)朋友問(wèn)到max_allowed_packet被自動(dòng)重置的問(wèn)題,于是打算寫(xiě)個(gè)文章來(lái)描述下,因?yàn)橛龅竭@個(gè)問(wèn)題的人不少,但是提到的解決方案幾乎沒(méi)有。

max_allowed_packet指的是服務(wù)器接收的包的大小,該值設(shè)置過(guò)小,可能導(dǎo)致數(shù)據(jù)寫(xiě)入失敗,通??梢酝ㄟ^(guò)修改my.cnf或者在命令行通過(guò)set max_allowed_packet來(lái)實(shí)現(xiàn)。

但是在實(shí)際情況中,我們很多時(shí)候會(huì)遇到這樣的一種情況:通過(guò)各種方式設(shè)置了max_allowed_packet的值,但是一段時(shí)間后,max_allowed_packet還是莫名其妙的變成了1024,而my.cnf里面的值還是之前設(shè)置的大于1024的值。

這個(gè)問(wèn)題看起來(lái)很詭異,但是至少可以確定一點(diǎn),那就是該值通過(guò)某某連接,在連接里面通過(guò)set命令給重置了。

一般來(lái)說(shuō),引起該問(wèn)題不外乎如下幾種情況:

設(shè)置不當(dāng):設(shè)置該值需要修改my.cnf配置,但是一共需要設(shè)置兩處,如下:

[client]

max_allowed_packet=10240

[mysqld]

max_allowed_packet=10240

mysqld里面控制的是服務(wù)端,mysql里面控制的是客戶(hù)端,如果只設(shè)置一處,則當(dāng)有客戶(hù)端連接的時(shí)候,該值會(huì)被重置。

內(nèi)存不足:當(dāng)mysql執(zhí)行大批次查詢(xún)語(yǔ)句大時(shí)候,因?yàn)榉?wù)器內(nèi)存不足,引起預(yù)警,mysql會(huì)重置這個(gè)值,已保證數(shù)據(jù)庫(kù)的穩(wěn)定。

黑客攻擊:其實(shí)在生產(chǎn)環(huán)境下,大多數(shù)的情況,還真是被攻擊了,針對(duì)這個(gè)情況,需要集中查看,安全不容小覷,mysql 有g(shù)eneral_log, 會(huì)記錄所有執(zhí)行的sql命令,因?yàn)楹馁M(fèi)性能,默認(rèn)是關(guān)閉。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 我一直有一個(gè)固定的生活模式,一個(gè)穩(wěn)定的朋友圈,一個(gè)保守的信念。我從小就被教導(dǎo)一定要像淑女一樣,不允許面目扭曲的狂笑...
    月夕花晨XLN閱讀 300評(píng)論 0 3
  • 兩種方式: 方法1有點(diǎn)hack,方法2類(lèi)似于環(huán)境變量。 PS:xcodeproj setting中,User-De...
    偶是星爺閱讀 430評(píng)論 0 0

友情鏈接更多精彩內(nèi)容