ฉันมี 2 เซิร์ฟเวอร์ลินุกซ์ 1 กำลังเรียกใช้ apache2 ด้วยแอปพลิเคชัน PHP และอีกอันกำลังเรียกใช้ mysql 5.7 (ดังนั้นการเชื่อมต่อระยะไกลกับ DB)
แอปพลิเคชัน PHP พยายามสร้าง BIGBLOB จากไฟล์ (90MB) และจัดเก็บไว้ใน SQL
แต่ฉันได้รับข้อผิดพลาดนี้: (สิ่งนี้เกิดขึ้นกับ BLOB ที่ใหญ่กว่าเท่านั้น)
PHP:
[PDOException] SQLSTATE[HY000]: ข้อผิดพลาดทั่วไป: เซิร์ฟเวอร์ 2006 MySQL หายไป
มายเอสคิวแอล:
2022-03-24T14:22:41.443626Z 268701 [หมายเหตุ] ยกเลิกการเชื่อมต่อ 268701 กับ db: 'bug' ผู้ใช้: 'user' โฮสต์: 'subdomain.hostname.com' (มีข้อผิดพลาดในการอ่านแพ็กเก็ตการสื่อสาร)
ฉันค้นหารูอินเทอร์เน็ต ฉันทำดังต่อไปนี้
อัปเดต: max_allowed_packet เป็น 1GB
ฉันตรวจสอบแล้ว: wait_timeout และ interactive_timeout ใช้ได้ (28880 วินาที)
ฉันเพิ่มหน่วยความจำ SWAP ไม่มีอะไรทำงาน ความคิดใด ๆ ?
ป.ล. ดูเหมือนว่าการเชื่อมต่อจะถูกตัดที่ไหนสักแห่งหลังจากผ่านไป 30 วินาที แต่ฉันไม่สามารถบอกได้แน่ชัดและทำไม
นี่คือการตั้งค่า MySQL:
mysql> แสดงตัวแปรส่วนกลาง เช่น "%timeout%";
+------------------------------+--------+
| ชื่อตัวแปร | ค่า |
+------------------------------+--------+
| connect_timeout | 10 |
| ล่าช้า_insert_timeout | 300 |
| have_statement_timeout | ใช่ |
| innodb_flush_log_at_timeout | 1 |
| innodb_lock_wait_timeout | 50 |
| innodb_rollback_on_timeout | ปิด |
| interactive_timeout | 28800 |
| lock_wait_timeout | 31536000 |
| net_read_timeout | 120 |
| net_write_timeout | 120 |
| rpl_stop_slave_timeout | 31536000 |
| slave_net_timeout | 60 |
| wait_timeout | 28800 |
+------------------------------+--------+
max_allowed_packet | 1073741824 |
แกะ:
รวมใช้บัฟ/แคชที่ใช้ร่วมกันฟรี
เมม: 7976 1056 256 1 6663 6630
สลับ: 10239 8 10231