Page 1 of 1

max_allowed_packet คืออะไร ฐานข้อมูล MySQL , mariadb

Posted: 05/11/2019 5:46 pm
by mindphp
max_allowed_packet คืออะไร ฐานข้อมูล MySQL, mariadb
max_allowed_packet คือค่าที่ฐานข้อมูลยอมรับในการรับส่ง packet ระหว่างเครื่อง client กับ Server หรือ การรันคำสั่งใน ฐาข้อมูลแต่ละครั้ง ปกติ จะส่วนที่ร้องขอเข้ามาเพื่อรันคำสั่ง เช่น เราเขียน SQL ยาว แล้ว มาสั่ง Query ทีเดียว ถ้าค่านี้ กำหนดไว้น้อย เกินไป ก่อนอาจมี Error ส่งคำสั่งเข้ามาเกินที่ Server จะทำงานได้ ก็จะเจอ Error ข้อความ เกี่ยวกับ memory กลับไปแจ้ง
โดยปกติ MySQLจะมีค่ามาตรฐาน หรือค่า default ของมัน ไว้ที่ 2M
ส่วนของ mariadb ค่า default ก็จะเปลี่ยนไปตามเวอร์ชั่น
16777216 (16M) >= MariaDB 10.2.4
4194304 (4M) >= MariaDB 10.1.7
1048576 (1MB) <= MariaDB 10.1.6

ของจากการ config ตัวนี้แล้ว ยังมีค่า config ที่เกี่ยวข้องอีกตัว คือ net_buffer_length ไว้ติดตามตอนต่อไป

แล้วเราจะเปลี่ยนค่านี้ได้ที่ไหน คำตอบคือ my.cnf สำหรับ Linux แล้ว my.ini สำหรับ windows

กระทู้ที่พูดถึงเรื่องนี้ ในบอร์ดเรา เช่น
ปัญหา MySQL server has gone away (error 2006)
viewtopic.php?f=27&t=16149

Fatal error Allowed memory size of 134217728 bytes exhausted
viewtopic.php?f=6&t=9747

ความรู้เพิ่มเติม
ทำให้ Mysql บน Host สามารถ connect จากเครื่องอื่นได้ my.cnf