FiveM MySQL Host Is Blocked Error 1129 แก้อย่างไร? วิธีแก้ Too Many Connection Errors, max_connect_errors และปลด Block Host ให้ถูกต้อง
ปัญหา FiveM MySQL/MariaDB ขึ้น Host is blocked because of many connection errors หรือ Error 1129 เกิดเมื่อ MariaDB พบว่า Host หรือ IP หนึ่งมีการเชื่อมต่อผิดพลาดต่อเนื่องมากเกินจำนวนที่กำหนด จึง Block Host นั้นไม่ให้สร้าง Connection ใหม่เข้ามาชั่วคราว
MariaDB กำหนด Error 1129, SQLSTATE HY000 เป็น ER_HOST_IS_BLOCKED พร้อมข้อความ:
Host 'x.x.x.x' is blocked because of many connection errors;unblock with 'mysqladmin flush-hosts'
โดยตรง.
สำหรับ FiveM ปัญหานี้มักเกิดในสถาปัตยกรรมที่ Database อยู่คนละเครื่องกับ FiveM Server เช่น:
FiveM Server↓Remote MariaDB↓เกิด Connection/Handshake Error ซ้ำ↓MariaDB นับ Connection Errors↓ถึง max_connect_errors↓FiveM Host ถูก Block↓Error 1129
MariaDB ระบุว่า max_connect_errors คือจำนวน Successive Failed Connects จาก Host เดียว ที่อนุญาตก่อน Block Host และถ้า Host สามารถเชื่อมต่อสำเร็จหนึ่งครั้ง Counter ของ Host นั้นจะถูก Reset กลับเป็นศูนย์.
ดังนั้นการแก้ Error 1129 ที่ถูกต้องไม่ใช่เพียง:
FLUSH HOSTS↓จบ
เพราะถ้า Root Cause ของ Connection Errors ยังอยู่ Host เดิมสามารถถูก Block ใหม่ได้อีก
วิธีที่ถูกต้องคือ:
ปลด Block → ตรวจจำนวน Connection Errors → หาเหตุผลที่ Connection Fail → ตรวจ Network/Wrapper/Handshake → แก้ Root Cause → ค่อยพิจารณา max_connect_errors
① FiveM MySQL Error 1129 คืออะไร
MariaDB Error 1129 คือ:
1129HY000ER_HOST_IS_BLOCKED
และข้อความระบุว่า Host ถูก Block เนื่องจากมี Connection Errors จำนวนมาก.
② Host ในที่นี้คืออะไร
โดยทั่วไปหมายถึง Host/IP ของ Client ที่กำลังพยายามเชื่อมเข้าหา MariaDB
ใน FiveM อาจเป็น:
FiveM VPS IP
ถ้า FiveM และ MariaDB อยู่คนละ Server
③ ถ้า MariaDB อยู่เครื่องเดียวกับ FiveM ล่ะ
ก็ยังต้องดูว่า Connector กำลังเชื่อมด้วย:
- localhost
- 127.0.0.1
- local hostname
- container network
แบบใด
ไม่ควรสมมติจากชื่อ Server อย่างเดียว
④ Error 1129 ไม่ได้แปลว่ารหัสผ่านผิดอย่างเดียว
ถูกต้อง
Connection Error สามารถมาจากหลายสาเหตุ และ MariaDB มี Aborted_connects สำหรับนับ Failed Server Connection Attempts ซึ่งเอกสารระบุสาเหตุได้ทั้ง Password ผิด, ไม่มีสิทธิ์เชื่อม Database, Connection Packet ไม่ถูกต้อง หรือใช้เวลาส่ง Connect Packet เกิน connect_timeout.
⑤ Error นี้ต่างจาก 1045 อย่างไร
Error 1045
มักเป็น:
Access denied
เกี่ยวกับ Authentication/Privileges
Error 1129
Host is blocked because of many connection errors
หมายความว่า MariaDB Block Host จาก Connection Errors ที่สะสมถึง Threshold.
⑥ Error 1129 ต่างจาก 1040 อย่างไร
1040
Too many connections
คือจำนวน Connections พร้อมกันถึง Limit
1129
Host is blocked
คือ Host ถูก Block หลัง Connection Errors ต่อเนื่องถึง max_connect_errors
⑦ Error 1129 ต่างจาก 1130 อย่างไร
MariaDB Error Code Reference แยก Error:
1130Host ... is not allowed to connect
ออกจาก Error 1129 ที่เป็น Host ถูก Block เพราะ Connection Errors.
⑧ ดังนั้นอย่าแก้ 1130 แบบ 1129
ถ้า Error จริงคือ:
Host is not allowed to connect
อาจต้องตรวจ User/Host Grants หรือ Remote Access Configuration
ไม่ใช่ FLUSH HOSTS
⑨ ตัวแปรหลักคือ max_connect_errors
MariaDB อธิบายว่า:
max_connect_errors
กำหนดจำนวน Successive Failed Connects จาก Host หนึ่งก่อน MariaDB Block Host นั้น.
⑩ ตรวจค่าปัจจุบันอย่างไร
ใช้:
SHOW VARIABLES LIKE 'max_connect_errors';
⑪ หรือ
SELECT @@max_connect_errors;
⑫ ควรเพิ่ม max_connect_errors ทันทีไหม
ไม่
เพราะถ้า FiveM Server มี Connection Failure หลายร้อยครั้งต่อเนื่อง:
สิ่งสำคัญกว่าคือหาว่า:
ทำไม Connections ถึง Fail ซ้ำ
⑬ MariaDB จะ Reset Counter เมื่อไร
MariaDB ระบุว่า Successive Failed Connect Counter ของ Host จะ Reset เป็นศูนย์เมื่อ Host นั้นเชื่อมต่อสำเร็จ.
⑭ นี่สำคัญมาก
ถ้า Network ปกติ:
failfailsuccess
Counter จะไม่สะสมแบบเดียวกับ:
failfailfailfailfail...
ต่อเนื่อง
⑮ ทำไม FiveM ถึง Fail ต่อเนื่องได้
ตัวอย่าง:
- Database Host ผิด
- Port ผิด
- Firewall
- Network ไม่เสถียร
- Connector Retry รัว
- Database Restart
- Handshake Error
- Connection Packet Error
- Server Load สูง
⑯ Retry Loop อาจทำให้สถานการณ์หนักขึ้น
สมมติ Resource เชื่อมไม่ได้แล้วทำ:
connect fail↓retry immediately↓fail↓retry immediately↓fail
โดยไม่มี Backoff
Connection Errors สามารถสะสมอย่างรวดเร็ว
⑰ แล้ว Host ถูก Block
จากนั้นแม้ Network จะกลับมาปกติ:
MariaDB อาจยังปฏิเสธ Host จนกว่าจะปลด Block
⑱ วิธีปลด Block คืออะไร
MariaDB ระบุว่าสามารถ Flush Host Cache ได้ด้วย:
FLUSH HOSTS;
เพื่อ Unblock Hosts.
⑲ หรือใช้ Command Line
MariaDB Documentation ระบุอีกวิธีคือ:
mariadb-admin flush-hosts
และ Error Message รุ่นเก่าหรือ Compatibility Message อาจแสดงคำว่า mysqladmin flush-hosts.
⑳ ทำไมชื่อ mysqladmin ยังปรากฏ
MariaDB รักษา Compatibility กับ MySQL Tools/Terminology หลายส่วน
แต่เอกสาร MariaDB ปัจจุบันอ้างถึง mariadb-admin flush-hosts ด้วย.
㉑ ใช้ FLUSH HOSTS แล้วจบไหม
ไม่ควรถือว่าจบ
เพราะ:
Root Cause ยังอยู่↓Connection Fail ต่อ↓Counter เพิ่มใหม่↓ถึง max_connect_errors↓Block อีก
㉒ FLUSH HOSTS ทำอะไร
MariaDB ระบุว่า FLUSH HOSTS จะ Flush Hostname Cache และสามารถใช้เพื่อ Unblock Blocked Hosts.
㉓ นี่ไม่ใช่การ Restart Database
ถูกต้อง
FLUSH HOSTS เป็น Administrative Operation สำหรับ Host Cache
ไม่ต้อง Restart MariaDB เพียงเพื่อ Unblock Host ในกรณีนี้.
㉔ Restart MariaDB ช่วยไหม
อาจเปลี่ยน Runtime State แต่ไม่ควรใช้เป็นวิธีหลักเมื่อ MariaDB มีคำสั่งสำหรับ Flush Host Cache โดยตรง
และ Restart Database จะกระทบ Connections อื่นด้วย
㉕ Restart FiveM ช่วยไหม
ไม่ปลด Block ที่อยู่ฝั่ง MariaDB โดยตรง
ถ้า MariaDB ยัง Block FiveM Host:
FiveM Restart แล้วก็สามารถเจอ Error 1129 เหมือนเดิม
㉖ Clear FiveM Cache ช่วยไหม
โดยทั่วไปไม่เกี่ยว
เพราะ Block เกิดที่ MariaDB Host Cache/Connection Error Handling
㉗ Host Cache คืออะไร
MariaDB มี performance_schema.host_cache สำหรับเก็บสถานะและ Statistics ของ Hosts ที่เชื่อมต่อ Database.
㉘ ตารางนี้มีประโยชน์มาก
เพราะสามารถช่วยดู:
- Host
- Connection Errors
- Blocking-related counters
แทนการเดา
㉙ MariaDB ระบุ SUM_CONNECT_ERRORS
ใน performance_schema.host_cache มี:
SUM_CONNECT_ERRORS
ซึ่งนับ Protocol Handshake Errors ที่เข้าเงื่อนไขและ Errors เหล่านี้นับต่อ max_connect_errors.
㉚ ยังมี COUNT_HOST_BLOCKED_ERRORS
MariaDB Host Cache ยังมี Counter สำหรับเหตุการณ์ Host ถูก Block.
㉛ ตรวจ Host Cache
ใน Environment ที่ Performance Schema/Host Cache ใช้งานอยู่ สามารถตรวจแนวคิดด้วย:
SELECT *FROM performance_schema.host_cache;
㉜ อย่าลบ Host Cache Table เอง
ไม่จำเป็น
ใช้ Administrative Commands ที่ MariaDB รองรับ
㉝ หา FiveM Host
ถ้า Database Remote:
มองหา IP ของ FiveM Server ใน Host Cache
㉞ ถ้ามีหลาย FiveM Servers
เช่น:
productiontestdev
ต้องดู IP ให้ถูกตัว
㉟ อย่าปลด Block แบบสุ่มทั้งระบบแล้วไม่หาต้นเหตุ
เพราะจะทำให้ Evidence หายบางส่วนและปัญหากลับมา
㊱ ก่อน Flush ถ้าเป็นไปได้ให้เก็บข้อมูล
เช่น:
HostSUM_CONNECT_ERRORSCOUNT_HOST_BLOCKED_ERRORSเวลาที่เกิด
㊲ แล้วค่อย Flush
จากนั้น Monitor ใหม่
㊳ ถ้า Counter เพิ่มทันทีหลัง Flush
นั่นเป็นเบาะแสสำคัญมาก
หมายความว่า Connection Problem ยังเกิดอยู่
㊴ ตัวอย่าง
ก่อน:
FiveM host blocked
ทำ:
FLUSH HOSTS;
แล้วภายใน 1 นาที Counter พุ่งอีก
นี่ไม่ใช่ปัญหา Host Cache อย่างเดียว
㊵ ต้องหา Connection Failure
จุดต่อไปคือ:
FiveM → Database
㊶ ตรวจ Connection String
ดู:
- Host
- Port
- Database
- User
แต่ห้ามเผย Password ลง Public Logs
㊷ Database Host ผิด
ถ้า Resource/Wrapperกำลังเชื่อมผิด Host:
ต้องแก้ Connection String
㊸ Port ผิด
MariaDB ปกติใช้ Portตาม Configurationจริง
อย่าถือว่า Serverทุกตัวต้องใช้ค่าเดียวกัน
㊹ Firewall
ถ้า Database Remote:
Firewall ต้องอนุญาต FiveM Host ตาม Security Design
㊺ แต่อย่าเปิด Port Database ให้โลก
ไม่ควรใช้:
allow everyone
เพียงเพื่อแก้ Error
ควรจำกัด Source ตาม Architecture
㊻ Database User Host Restriction
MariaDB User Accounts สามารถสัมพันธ์กับ User/Host Context
ดังนั้น Remote Access ต้องกำหนดสิทธิ์ให้ตรงกับ Host ที่ใช้งานจริง
㊼ แต่ถ้าเป็น Grant Problem
อาจเห็น Access/Host-related Error อื่น
อย่าถือ Error 1129 เป็น Grant Error เสมอ
㊽ Network Interruption
Remote FiveM → MariaDB ผ่าน Network
ถ้า Connection Handshake ถูกขัดจังหวะซ้ำ:
Connection Errors อาจสะสม
㊾ MariaDB ระบุ Connection Packet ที่ผิดหรือใช้เวลาเกิน connect_timeout
เป็นเหตุผลหนึ่งที่ทำให้ Aborted_connects เพิ่มได้.
㊿ connect_timeout คืออะไร
เป็น Timeout ช่วงที่ MariaDB รอ Connection Packet/Handshake ในขั้นสร้าง Connection
จึงต่างจาก:
wait_timeoutnet_read_timeoutnet_write_timeout
ที่เกี่ยวกับคนละช่วงของ Connection
51. อย่าสับสนกับ wait_timeout
wait_timeout เกี่ยวกับ Connection ที่เชื่อมสำเร็จแล้วและ Idle
Error1129เกี่ยวกับ Failed Connection Attempts ที่สะสมจน Host ถูก Block.
52. อย่าสับสนกับ net_read_timeout
net_read_timeout เกี่ยวกับ MariaDB รออ่าน Data เพิ่มจาก Client หลัง Connection Flow ไปไกลกว่านั้น
53. Error 1159 ที่ทำมาก่อนหน้า
คือ:
Got timeout reading communication packets
เป็นคนละ Error
54. แต่ Connection Errors หลายกลุ่มอาจเกิดร่วมกัน
เช่น Networkไม่เสถียร
อาจเห็น:
- 1158
- 1159
- 1160
- 1161
- 2006
- 2013
ร่วมกับ Connection Attempts ที่ Fail
55. อ่าน Error Timeline
อย่าดู 1129 เพียงบรรทัดเดียว
ตัวอย่าง:
network problem↓connection errors↓retry storm↓max_connect_errors reached↓1129 host blocked
56. ในกรณีนี้ 1129 เป็นปลายเหตุ
Root Cause คือ Network/Client Connection Error
57. FiveM Database Wrapper Retry สำคัญ
Wrapperอาจมี Automatic Reconnect
ตาม Version/Library
58. Automatic Reconnect ดีไหม
จำเป็นในหลายระบบ
แต่ Retry Policy ที่รัวมากเกินไปเมื่อ DBล่มสามารถเพิ่ม Failed Attempts
59. อย่าเพิ่ม Custom Infinite Reconnect Loop
ถ้า Wrapperมี Logicอยู่แล้ว
60. ตัวอย่างที่ควรหลีกเลี่ยง
while database offline:connectconnectconnectconnect
โดยไม่มี Delay
61. Better Concept
Retryควรมี:
- Delay
- Backoff
- Error Handling
ตาม Library Design
62. อย่าแก้ Wrapper Source ก่อนตรวจ Official Update
โดยเฉพาะ Resourceยอดนิยม
63. Errorหลัง Update Database Wrapper
ถ้า1129เริ่มหลัง Update:
ตรวจ:
- Release Notes
- Pool
- Connection settings
- Reconnect behavior
64. Errorหลังติด Resourceใหม่
Resourceบางตัวอาจเปิด Connectionเอง
แทนใช้ Wrapperหลัก
65. ถ้า Resourceเปิด Connectionsเองและ Retryผิด
อาจสร้าง Failed Connection Burst
66. ตรวจ Resource Dependencies
Database Wrapperควรพร้อมก่อน Resourceที่ต้องใช้ Database
67. Startup Order
ถ้า FiveM Start Resources ก่อน Databaseพร้อม:
หลาย Resourcesอาจพยายาม Connectพร้อมกัน
68. Database Restart
เช่น:
MariaDB restart↓FiveM ยังทำงาน↓resources reconnect↓database ยังไม่ ready↓connection failures
69. ถ้า Retryเร็วมาก
อาจเกิด Failure จำนวนมากในช่วงสั้น
70. หลัง MariaDBกลับมา
FiveM Hostอาจถูก Blockไปแล้ว
71. จึงต้องทำสองอย่าง
หนึ่ง
แก้/จัดการ Reconnect Behavior
สอง
Unblock Host หลัง Databaseพร้อม
72. Errorหลัง Server Boot
ถ้า MariaDBและFiveM Startพร้อมกัน:
Startup Sequenceอาจมีผล
73. อย่าแก้ด้วย Sleep 60วินาทีแบบสุ่มทุกครั้ง
Health/Readinessและ Library Reconnect Logicที่ถูกต้องดีกว่า Hardcoded Delay
74. Docker Environment
ถ้า:
fivem containermariadb container
Startup Timing/Container Restartอาจทำ Failed Connectionsจำนวนมาก
75. Healthcheck มีประโยชน์
ใน Infrastructureที่รองรับ
แต่ต้องใช้ตาม Environmentจริง
76. Errorหลัง MariaDB Container Crash
FiveM Connectorอาจพยายาม Reconnectซ้ำ
แล้ว Hostอาจถูก Block
77. Remote Managed Database
Provider Maintenanceอาจทำ Connectionขาดชั่วคราว
Applicationควร Handle Outageอย่างเหมาะสม
78. แต่ Error1129หลัง Maintenance
ยังควรตรวจ Failed Connection Count
ไม่ควรสรุปว่า Providerผิดโดยไม่มีหลักฐาน
79. Aborted_connects ช่วยอย่างไร
MariaDB ระบุ Aborted_connects เป็นจำนวน Failed Server Connection Attempts.
ตรวจได้ด้วย:
SHOW GLOBAL STATUS LIKE 'Aborted_connects';
80. จดค่าก่อน
เช่น:
Aborted_connects = 200
81. ตรวจอีกครั้ง
หลัง 10 นาที:
Aborted_connects = 5000
แสดงว่ามี Failed Connections จำนวนมากเกิดขึ้นในช่วงนั้น
82. แต่ Aborted_connects เป็น Global
ไม่ได้บอก Hostเดียวโดยตรง
จึงใช้ Host Cacheร่วมด้วย
83. Host Cacheละเอียดกว่า
performance_schema.host_cache ช่วยดู Errorsตาม Host และ SUM_CONNECT_ERRORS ที่สัมพันธ์กับ max_connect_errors.
84. Diagnostic ที่ควรเก็บ
SHOW VARIABLES LIKE 'max_connect_errors';
SHOW GLOBAL STATUS LIKE 'Aborted_connects';
และถ้ามี:
SELECT *FROM performance_schema.host_cache;
85. อย่า UPDATE host_cache เอง
ใช้ MariaDB Administrative Mechanism
86. ปลด Block ด้วย
FLUSH HOSTS;
MariaDB ระบุโดยตรงว่า HOSTS Flush ใช้สำหรับ Unblocking Blocked Hosts.
87. FLUSH HOSTS ปลอดภัยไหม
เป็นคำสั่ง Administrative ที่มีวัตถุประสงค์ชัดเจนสำหรับ Host Cache แต่ควรใช้โดยผู้มีสิทธิ์ที่เหมาะสมและไม่ใช้แทนการแก้ Connection Errors.
88. ไม่ต้อง DELETE Database
เด็ดขาด
Error1129ไม่เกี่ยวกับการลบ Data
89. ไม่ต้อง Repair Table
ไม่ใช่ Table Corruption Error
90. ไม่ต้อง ALTER TABLE
ไม่เกี่ยวกับ Schema
91. ไม่ต้องเปลี่ยน Character Data
ไม่เกี่ยวกับ Player Record
92. ไม่ต้อง Clear Inventory
ไม่เกี่ยว
93. ไม่ต้องล้าง FiveM Cache
โดยทั่วไปไม่เกี่ยว
94. ไม่ต้อง Reinstall MariaDB
ไม่ใช่ First Fix
95. ไม่ต้องเปลี่ยน Database Passwordทันที
ถ้า Credentialsผิดจริงต้องแก้ Credentials
แต่1129ไม่ได้พิสูจน์ว่ารหัสผ่านผิดเพียงอย่างเดียว
96. ถ้ารหัสผ่านผิดแล้ว Resource Retryรัว
เป็นไปได้ไหม
ได้ในเชิงระบบ
เพราะ Failed Authentication Connectionsสามารถเพิ่ม Failed Connection Attempts และ MariaDB ระบุ Passwordผิดเป็นหนึ่งในเหตุผลที่ Aborted_connects เพิ่ม.
97. ดังนั้นตรวจ Credentialsหลัง Deploy
โดยเฉพาะถ้า Errorเริ่มหลัง:
- เปลี่ยน Password
- ย้าย Host
- เปลี่ยน Environment Variables
98. อย่าส่ง Passwordใน Discord/Public Forum
ส่ง:
- Error Code
- Host/IPแบบ Maskถ้าจำเป็น
- Wrapper Version
ก็เพียงพอสำหรับการเริ่ม Debug
99. Database Nameผิด
MariaDBอาจให้ Errorที่เฉพาะกว่า เช่น Unknown Database
แต่ Connection Retriesที่ผิด Configurationก็ยังสร้างปัญหาอื่นตามมาได้
100. Hostname DNS
MariaDB Host Cacheเกี่ยวข้องกับ Hostname/IP lookup และ MariaDBระบุ FLUSH HOSTS ว่าจะ Flush Hostname Cache.
101. DNS Problem ทำ1129ได้ไหม
ไม่ควรสรุปจาก Error1129เพียงตัวเดียว
แต่ Hostname resolution/connection behaviorเป็นส่วนหนึ่งของ Host Cache และควรตรวจเมื่อ Error Logsชี้ไปทางนั้น.
102. ใช้ IP แทน Hostnameเลยดีไหม
ไม่ควรเปลี่ยน Architectureจาก Guess
Hostnameอาจมีเหตุผลด้าน:
- Failover
- Managed DB
- DNS
ตรวจ Root Causeจริงก่อน
103. skip_name_resolve ควรเปิดไหม
ไม่ควรนำไปใช้เป็น Quick Fixจาก Error1129เพียงอย่างเดียว เพราะมีผลต่อวิธี Hostnamesถูกใช้ในการ Authentication/Connection Configuration
ควรศึกษา Configuration/Grantsทั้งหมดก่อน
104. FiveM Hostเปลี่ยน IP
หากย้าย VPSหรือใช้ Dynamic Network:
MariaDB Grants/Firewallอาจยังอ้าง IPเก่า
105. Connection Failต่อเนื่อง
แล้ว Wrapper Retry
อาจนำไป Error Chainหลายตัว
106. ตรวจ Public IPของ FiveM Serverให้ถูก
ถ้า Databaseอยู่ Remote
107. NAT Environment
MariaDBอาจเห็น Source IPที่ต่างจาก IPที่คุณคาด
108. ดู Host Cache/Error Log
ดีกว่าเดาจาก Public IPเพียงอย่างเดียว
109. Error1129บน Shared Database
Hosting Providerอาจควบคุม:
-
max_connect_errors - Host Cache
- Administrative commands
110. ถ้าไม่มีสิทธิ์ FLUSH HOSTS
ต้องให้ Database Administrator/Hosting Providerดำเนินการ
111. ส่งอะไรให้ Provider
ส่งข้อมูลเช่น:
Error 1129FiveM server source IPเวลาที่เกิดMariaDB username
แต่ไม่ต้องส่ง Password
112. Providerควรปลด Blockอย่างเดียวไหม
ยังต้องหาสาเหตุ Failed Connections
ไม่อย่างนั้น Blockอาจกลับมา
113. เพิ่ม max_connect_errors แก้ไหม
MariaDBระบุ Variableนี้เป็น Dynamic Global Settingสำหรับ Threshold ก่อน Host Block.
จึงสามารถปรับได้ใน Environmentที่มีสิทธิ์
114. แต่เพิ่มเป็นล้านดีไหม
ไม่ควรทำเป็น First Fix
เพราะจะลดความไวของ Protectionต่อ Hostที่เกิด Connection Errorsต่อเนื่อง
115. ถ้า Connection Errorsเกิดจาก Bug
เพิ่ม Thresholdเพียงทำให้ Bugยิงได้นานขึ้นก่อนถูก Block
116. ถ้า Network มี Packet Loss
ก็เหมือนกัน
Root Causeยังอยู่
117. เมื่อไรควรพิจารณาเพิ่ม
เมื่อ:
- Networkปกติ
- Wrapperปกติ
- Retry Logicเหมาะสม
- Connection Errorsเป็น Transientที่ยอมรับได้
- Thresholdเดิมต่ำเกิน Workload/Infrastructureจริง
แล้วค่อยประเมิน
118. ไม่มีค่า FiveM มาตรฐาน
ไม่ควรบอกว่า:
FiveM 100 players = max_connect_errors X
เพราะ Variableนี้เกี่ยวกับ Failed Connections ไม่ใช่จำนวน Playersโดยตรง.
119. Playersเยอะไม่ได้แปลว่าต้องเพิ่ม max_connect_errors
ถ้า Connectionsสำเร็จปกติ:
ไม่มีเหตุผลจาก Player Countเพียงอย่างเดียว
120. Connection Poolช่วยอะไร
Poolช่วย Reuse Connectionsและลดการสร้าง Connectionใหม่บ่อย ๆ ตามการออกแบบของ Database Client
121. Poolผิด Configuration
ถ้า Poolสร้าง/ทำลาย Connectionsถี่ผิดปกติ:
อาจเพิ่ม Connection Attempts
122. Connection Churn
คือเปิด/ปิด Connectionsจำนวนมาก
ไม่เหมือน Connection Leakแต่ก็สามารถเพิ่ม Loadได้
123. Resourceไม่ควร Connectต่อ Query
เช่น:
query↓new DB connection↓close
หลายพันครั้ง
ถ้า Wrapperมี Pool
124. ใช้ Wrapperให้ถูก
เช่น Resourcesใน Frameworkเดียวกันควรใช้ Database Layerตามที่ Frameworkกำหนด
125. Errorหลัง Load Test
ถ้า Testเปิด Connectionsผิดรูปแบบ:
Hostอาจถูก Block
126. อย่า Load Test Production Databaseแบบสุ่ม
ใช้ Stagingเมื่อเป็นไปได้
127. Security Scanner
Connection Attemptsที่ไม่สมบูรณ์จำนวนมากอาจสร้าง Connection Error Metricsได้ในบางสถานการณ์
แต่ Error1129ไม่ใช่หลักฐานว่า Serverถูกโจมตี
128. อย่าประกาศว่าโดน DDoSจาก1129
ต้องมี:
- Network metrics
- Source logs
- Security evidence
129. Error1129อาจเกิดจากตัว Serverเอง
เช่น FiveM Database Wrapper Retryผิด
ซึ่งพบได้โดยไม่ต้องมี Attacker
130. MariaDB Remote Access
MariaDBมีเอกสารสำหรับการตั้ง Remote Client Access รวมถึง Bind Address, User Permissions และ Firewall ซึ่งเป็นสิ่งที่ควรตรวจเมื่อ FiveMกับDBอยู่คนละ Host.
131. bind-address
หาก MariaDBไม่ได้ Listenบน Interfaceที่ FiveMใช้:
Remote Connectionจะไม่ทำงานตามที่คาด
132. แต่ Error1129หมายความว่า MariaDBเห็น Hostแล้วหรือไม่
โดยทั่วไปข้อความ1129มาจาก MariaDBที่กำลังตัดสินใจ Block Host
ดังนั้นไม่ควรรีบโฟกัส bind-address เป็น Root Causeหลักโดยไม่มี Connection History
133. Firewallยังควรตรวจ
โดยเฉพาะถ้ามี Intermittent Connection
134. Stable Firewall Rule
ควรอนุญาต:
FiveM Host → MariaDB Port
ตาม Architectureจริง
135. อย่าอนุญาต 0.0.0.0/0 เพียงเพราะง่าย
ลด Securityโดยไม่จำเป็น
136. Databaseไม่ควรใช้ rootจาก FiveM
ควรใช้ Dedicated Userที่มีสิทธิ์เท่าที่ Resourceต้องการ
137. Error1129ไม่ได้แก้ด้วย root
เพราะ Host Blockอยู่ระดับ Connection Handling
138. เปลี่ยน Userช่วยไหม
ถ้า Hostยังถูก Blockเพราะ Connection Errors:
เปลี่ยน Userไม่ได้แก้ Root Causeโดยอัตโนมัติ
139. Errorหลังเปลี่ยน Database Password
Flowอาจเป็น:
password changed↓FiveM still uses old password↓connections fail↓automatic retries↓errors accumulate
MariaDBระบุ Incorrect Passwordเป็น Possible Causeของ Failed Connectionsใน Aborted_connects.
140. นี่เป็น Patternที่ควรจำ
หลังเปลี่ยน Credentials:
Update FiveM Connection Configพร้อมกัน
141. Errorหลัง Clone Productionไป Dev
Dev Serverอาจใช้ Credentials/HostของProductionผิด
แล้ว Retryต่อ Production Database
142. แยก Environment Config
ช่วยลดความผิดพลาด
143. Errorหลังเปิด Test Server
ถ้า TestกับProductionใช้ DB Credentialเดียวกัน:
ให้ตรวจทันที
144. Test Resource Bugอาจ Block Shared Source Host
โดยเฉพาะถ้า Trafficออกผ่าน NAT IPเดียวกัน
145. NAT ทำให้หลาย Servicesดูเหมือน Hostเดียว
นี่สำคัญใน Infrastructureบางแบบ
MariaDBอาจเห็น Source Addressเดียว
146. ดังนั้น Hostถูก Blockอาจกระทบหลาย Application
ที่ออกผ่าน Source IPเดียวกัน
147. อย่าคิดว่า Resourceเดียวเท่านั้นได้รับผล
ถ้าใช้ Shared NAT
148. วิธี Debug แบบเร็ว
เริ่มด้วย:
SHOW VARIABLES LIKE 'max_connect_errors';
จากนั้น:
SHOW GLOBAL STATUS LIKE 'Aborted_connects';
แล้วตรวจ:
SELECT *FROM performance_schema.host_cache;
หาก Environmentรองรับ Host Cache.
149. เก็บ Evidence
จด:
- Source host
- SUM_CONNECT_ERRORS
- Error time
- FiveM logs
150. แล้วปลด Block
FLUSH HOSTS;
MariaDBระบุคำสั่งนี้สำหรับ Flush Hostname Cache และ Unblock Hosts.
151. จากนั้น Monitor
ถ้า Errorกลับมา:
อย่า Flushวนไปเรื่อย ๆ
152. หา Failed Connection Pattern
เช่น:
ทุกครั้งหลัง restartทุกครั้ง DB outageทุกครั้ง network spikeทุกครั้ง resource update
153. Errorทุก Server Restart
ตรวจ:
- DB startup readiness
- Wrapper retry behavior
154. Errorทุก MariaDB Restart
ตรวจ Reconnect Storm
155. Errorทุกครั้งหลัง Internetสะดุด
ถ้า Remote DB:
ตรวจ Network
156. Errorหลัง Update Resource
ตรวจ Resourceที่เปิด DB Connectionเอง
157. Errorหลังเปลี่ยน Password
ตรวจ Credentials
158. Errorหลัง Migration
ตรวจ Host/Firewall/User/Port
159. Errorเฉพาะช่วง Peak
อาจเป็น Infrastructure Loadหรือ Connection Instability
แต่ต้องดู Metrics
160. Errorขณะไม่มี Players
น่าสงสัย Scheduled Task/Resource/External Application
เพราะ Playersไม่ได้เป็นตัวกำหนด Failed Connectionsโดยตรง
161. FiveM Error 1129 FAQ
FiveM Host is blocked because of many connection errors คืออะไร
MariaDB Error1129 / SQLSTATE HY000 / ER_HOST_IS_BLOCKED หมายถึง Host ถูก Block หลังเกิด Connection Errors จำนวนมาก.
max_connect_errors คืออะไร
เป็นจำนวน Successive Failed Connects จาก Hostหนึ่งที่ MariaDBอนุญาตก่อน Block Hostนั้น.
ดู max_connect_errors อย่างไร
SHOW VARIABLES LIKE 'max_connect_errors';
ปลด Block อย่างไร
MariaDBรองรับ:
FLUSH HOSTS;
หรือ Administrative Tool เช่น mariadb-admin flush-hosts.
FLUSH HOSTS ลบ Database ไหม
ไม่ เป็นการ Flush Hostname Cache/Unblock Hosts ไม่ใช่การลบ Tablesหรือ Data.
Restart MariaDB จำเป็นไหม
ไม่จำเป็นเพียงเพื่อ Unblock Host เพราะมี FLUSH HOSTS สำหรับกรณีนี้โดยตรง.
Restart FiveM ช่วยไหม
ไม่ปลด MariaDB Host Blockโดยตรง
Clear FiveM Cacheช่วยไหม
โดยทั่วไปไม่เกี่ยว
Error1129หมายถึง Passwordผิดไหม
ไม่เสมอ แต่ MariaDBระบุ Incorrect Passwordเป็นหนึ่งในสาเหตุที่ทำ Failed Connection Attempts/Aborted_connects เพิ่มได้.
Firewallเกี่ยวไหม
เกี่ยวได้โดยเฉพาะ Remote Database หาก Connection/Handshakeไม่เสถียร แต่ต้องดู LogsและNetworkจริง
Networkเกี่ยวไหม
เกี่ยวได้ เพราะ Failed Connections/Handshake Errorsสามารถสะสมและ MariaDB Host Cacheใช้ Connection Error Countsเพื่อตัดสิน Host Blocking.
Database Wrapperเกี่ยวไหม
ได้ หาก Wrapperสร้าง Failed Connection Attemptsต่อเนื่องหรือ Retryเร็วผิดปกติ
Resource Restartเกี่ยวไหม
อาจเกี่ยวถ้า Resourceสร้าง Database Connectionsเองและ Lifecycleผิด
Database Restartเกี่ยวไหม
อาจสร้าง Reconnect Burstจาก Applicationsที่ยังทำงานอยู่
Errorหลัง MariaDBกลับมาแล้วแต่ FiveMยังต่อไม่ได้
ตรวจว่า FiveM Hostถูก Blockจาก Failed Attemptsช่วง Outageหรือไม่
Aborted_connects คืออะไร
จำนวน Failed Server Connection Attempts และ MariaDBระบุสาเหตุได้ทั้ง Passwordผิด, Privilegeไม่พอ, Connection Packetผิด หรือ Connect Packetใช้เวลานานเกิน connect_timeout.
ดู Aborted_connects อย่างไร
SHOW GLOBAL STATUS LIKE 'Aborted_connects';
Host Cacheดูได้ไหม
MariaDBมี:
performance_schema.host_cache
ซึ่งรวมข้อมูล Host และ Connection Error Counters.
SUM_CONNECT_ERRORS คืออะไร
นับ Protocol Handshake Errors ที่เข้าเงื่อนไขและนับต่อ max_connect_errors.
Flush แล้ว Errorกลับมาทำอย่างไร
หยุด Flushวนและหา Root Causeของ Failed Connections
เพิ่ม max_connect_errorsช่วยไหม
สามารถเปลี่ยน Thresholdได้เพราะ MariaDBระบุว่าเป็น Dynamic Global Variable แต่ไม่ควรใช้แทนการแก้ Network/Client/Retry Problem.
ควรตั้ง max_connect_errors เท่าไรสำหรับ FiveM
ไม่มีค่ามาตรฐานที่ขึ้นกับจำนวน Players เพราะ Variableนี้นับ Failed Connection Attempts ไม่ใช่ Player Count.
ตั้งสูงมากเพื่อไม่ให้ Blockเลยดีไหม
ไม่แนะนำ เพราะจะซ่อน Connection Problemและลดประโยชน์ของ Host Blocking Threshold
Error1129กับ1040เหมือนกันไหม
ไม่
1040 = Connectionsพร้อมกันเต็ม
1129 = Hostถูก Blockจาก Connection Errors
Error1129กับ1130เหมือนกันไหม
ไม่ Error1130คือ Hostไม่ได้รับอนุญาตให้ Connect ส่วน1129คือ Hostถูก Blockจาก Connection Errors.
Error1129กับ1158เกี่ยวไหม
1158คือ Read Communication Error แต่ถ้ามี Connection Problemsหลายครั้งก็อาจอยู่ใน Incidentเดียวกันได้
Error1129กับ1159เกี่ยวไหม
1159คือ Read Timeout เป็นคนละ Error แต่ Network/Client Instabilityอาจสร้างหลายอาการพร้อมกัน
Error1129กับ1160/1161เกี่ยวไหม
เป็นคนละ Error โดย1160/1161อยู่ฝั่ง Write Communication
Error1129กับ2006เกี่ยวไหม
2006คือ Connectionที่ใช้งานต่อไม่ได้ ส่วน1129คือ Hostถูก Blockไม่ให้สร้าง Connectionใหม่ตาม Threshold
Error1129กับ2013เกี่ยวไหม
2013คือ Connectionหลุดระหว่าง Query เป็นคนละปัญหา
Errorหมายความว่าโดน Hackไหม
ไม่ Error1129เพียงอย่างเดียวไม่พิสูจน์ว่าโดนโจมตี
ต้องเปิด Database Portให้ทุก IPไหม
ไม่
ควรจำกัด Remote Database Accessตาม Architectureและ Security Policy.
ต้องใช้ rootเชื่อม FiveMไหม
ไม่ควรใช้ rootเพียงเพื่อแก้1129
ต้อง Reinstall MariaDBไหม
ไม่
ต้องลบ Databaseไหม
ไม่
ต้อง Backupก่อน FLUSH HOSTS ไหม
FLUSH HOSTS ไม่ใช่ Data Modificationของ Tables แต่ถ้าคุณกำลังจะเปลี่ยน Schema/Data/Migrationอื่นร่วมด้วยจึงควร Backupตามปกติ.
สรุป FiveM MySQL Host Is Blocked Error 1129
FiveM MySQL/MariaDB Error 1129 Host is blocked because of many connection errors เกิดเมื่อ Host มี Successive Failed Connections มากจนถึง Threshold ของ max_connect_errors และ MariaDB จึง Block Host นั้นไม่ให้สร้าง Connection ใหม่.
วิธีตรวจที่ควรจำคือ:
Error 1129↓ดู max_connect_errors↓ดู Aborted_connects↓ดู performance_schema.host_cache↓หา FiveM Host / SUM_CONNECT_ERRORS↓เก็บ Error Timeline↓FLUSH HOSTS↓FiveM เชื่อมได้หรือไม่↓Monitor Connection Errors↓แก้ Network / Credentials / Wrapper / Retry
MariaDB ระบุว่า FLUSH HOSTS สามารถใช้ Flush Hostname Cache และ Unblock Blocked Hostsได้ ขณะที่ performance_schema.host_cache สามารถช่วยดู Connection Error Counters ที่เกี่ยวข้องกับ Hostนั้น.
สิ่งที่ comsiam แนะนำคืออย่าหยุดที่ FLUSH HOSTS ถ้า FiveMกลับมาเชื่อม Databaseได้ เพราะนั่นเป็นเพียงการปลด Block หาก Credentialsยังผิด, Remote Networkยังหลุดหรือ Wrapperยัง Retry Connectionรัว Hostสามารถถูก Blockใหม่ได้อีก ให้ดู Aborted_connects, SUM_CONNECT_ERRORS และ Errorก่อนหน้าว่า Failed Connectionsเริ่มจากจุดใด
อีกหลักที่ comsiam แนะนำคืออย่าเพิ่ม max_connect_errors เป็นค่ามหาศาลเพื่อซ่อนปัญหา หาก Serverปกติแล้ว Thresholdเดิมต่ำเกิน Workloadจริงจึงค่อยประเมินเพิ่ม แต่ถ้า Connection Errorsยังพุ่งต่อเนื่อง การเพิ่ม Thresholdเพียงทำให้ MariaDBใช้เวลานานขึ้นก่อน Block Host ไม่ได้แก้ Network, Database Wrapper, Credentialsหรือ Reconnect Storm ที่เป็นต้นเหตุจริง
Comments
Post a Comment