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 คือ:

1129
HY000
ER_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:

1130
Host ... 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 ปกติ:

fail
fail
success

Counter จะไม่สะสมแบบเดียวกับ:

fail
fail
fail
fail
fail
...

ต่อเนื่อง

⑮ ทำไม 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

เช่น:

production
test
dev

ต้องดู IP ให้ถูกตัว

㉟ อย่าปลด Block แบบสุ่มทั้งระบบแล้วไม่หาต้นเหตุ

เพราะจะทำให้ Evidence หายบางส่วนและปัญหากลับมา

㊱ ก่อน Flush ถ้าเป็นไปได้ให้เก็บข้อมูล

เช่น:

Host
SUM_CONNECT_ERRORS
COUNT_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_timeout
net_read_timeout
net_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:
connect
connect
connect
connect

โดยไม่มี 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 container
mariadb 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 1129
FiveM 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

Popular posts from this blog

FiveM ยังน่าเล่นไหม? Enhanced เปลี่ยน FiveM แค่ไหน

FiveM คืออะไร เล่นอย่างไร สำหรับมือใหม่ เริ่มต้นตั้งแต่ศูนย์

วิธีตั้ง Admin Permission ด้วย add_ace และ add_principal FiveM แบบละเอียด