FiveM MySQL Host Is Not Allowed to Connect Error 1130 แก้อย่างไร? ตรวจ User@Host, Remote Access, bind-address และ Firewall ให้ถูกจุด

 ปัญหา FiveM MySQL/MariaDB ขึ้น Host is not allowed to connect to this MariaDB server หรือ Error 1130 หมายความว่า MariaDB ไม่พบ Account ที่อนุญาตให้ Host ต้นทางนั้นเชื่อมต่อเข้ามา โดย MariaDB กำหนด Error 1130, SQLSTATE HY000 เป็น ER_HOST_NOT_PRIVILEGED.

ตัวอย่าง:

ERROR 1130 (HY000):
Host '203.0.113.10' is not allowed to connect to this MariaDB server

สำหรับ FiveM ปัญหานี้พบได้มากเมื่อ:

  • FiveM Server กับ MariaDB อยู่คนละเครื่อง
  • ย้าย FiveM ไป VPS ใหม่
  • IP ของ FiveM เปลี่ยน
  • Database User มีเฉพาะ 'user'@'localhost'
  • สร้าง User ถูกชื่อแต่ Host ไม่ตรง
  • Remote Database Configuration ไม่ครบ
  • Firewall ยังไม่อนุญาต FiveM Host
  • bind-address ไม่รองรับ Remote Connection
  • Production/Test Server ใช้ Credentials สลับกัน
  • Database Account ถูกสร้างใหม่ไม่ตรงกับ Source Host

MariaDB กำหนด Account เป็นรูปแบบ 'username'@'hostname' ดังนั้น 'fivem'@'localhost' กับ 'fivem'@'203.0.113.10' ถือเป็นคนละ Account ในระบบสิทธิ์ของ MariaDB.

หลักการแก้จึงไม่ใช่เปิด Database ให้ทุก IP เข้ามาได้ แต่ควรเป็น:

หา FiveM Source Host
↓
ตรวจ MariaDB Account user@host
↓
ตรวจ SHOW GRANTS
↓
ตรวจ Remote Access
↓
ตรวจ bind-address
↓
ตรวจ Firewall
↓
สร้าง/แก้ Account ให้ตรง Host
↓
ทดสอบ Connection

① FiveM MySQL Error 1130 คืออะไร

MariaDB ระบุ Error 1130 ว่า:

1130
HY000
ER_HOST_NOT_PRIVILEGED
Host '%s' is not allowed to connect to this MariaDB server

หมายความว่า Host ต้นทางไม่มี MariaDB Account ที่อนุญาตให้ผ่านขั้นตอนนี้.

② จุดสำคัญมาก — MariaDB ใช้ User + Host

MariaDB ไม่ได้มอง Account จาก Username อย่างเดียว

รูปแบบคือ:

'user_name'@'host_name'

เช่น:

'fivem'@'localhost'

กับ:

'fivem'@'10.0.0.25'

เป็น Account คนละตัว.

③ ดังนั้นมี User fivem แล้วไม่ได้แปลว่า Remote FiveM เชื่อมได้

ถ้า Database มีเพียง:

'fivem'@'localhost'

Account นี้ถูกกำหนดสำหรับ Host localhost

Remote FiveM Host จะต้อง Match Account/Host ที่ MariaDB อนุญาต.

④ นี่คือสาเหตุยอดนิยมหลังย้าย FiveM ไป Server ใหม่

เดิม:

FiveM Server A
IP = 10.0.0.10

Database Account อาจถูกตั้งให้ Host นั้น

แต่เมื่อย้ายเป็น:

FiveM Server B
IP = 10.0.0.20

MariaDB Account เดิมอาจไม่ Match Source ใหม่อีกต่อไป

⑤ Error 1130 ต่างจาก Error 1129 อย่างไร

หัวข้อก่อนหน้า Error 1129 คือ:

Host is blocked because of many connection errors

คือ MariaDB Block Host เนื่องจาก Connection Errors ต่อเนื่อง.

ส่วน Error 1130 คือ:

Host is not allowed to connect

คือ Host ไม่มีสิทธิ์เข้าถึงตาม Account/Host Access Control.

⑥ จำง่าย ๆ

1129 = เคยเชื่อม แต่ Host ถูก Block จาก Errors
1130 = Host ไม่ได้รับอนุญาตให้ Connect

⑦ FLUSH HOSTS แก้ Error 1130 ไหม

โดยทั่วไปไม่ใช่คำตอบของ Error 1130

FLUSH HOSTS ใช้กับ Host Cache/Blocked Hosts ซึ่งตรงกับสถานการณ์ 1129 มากกว่า ส่วน 1130 เกี่ยวกับ Host ACL/Account Permission.

⑧ Restart MariaDB ช่วยไหม

ไม่แก้ Account ที่กำหนด Host ผิด

ถ้า Account ยังเป็น:

'fivem'@'localhost'

แต่ FiveM มาจาก Remote Host เดิม Error สามารถกลับมาเหมือนเดิม

⑨ Restart FiveM ช่วยไหม

ไม่แก้ MariaDB Account Permission เช่นกัน

⑩ Clear FiveM Cache ช่วยไหม

ไม่ใช่จุดแก้ของ Error 1130 เพราะปัญหาอยู่ที่ Database Access Control/Remote Connection Configuration

⑪ MariaDB ตรวจ Host ก่อน Password บางกรณี

performance_schema.host_cache ของ MariaDB มี COUNT_HOST_ACL_ERRORS สำหรับ Connection Attempts ที่ไม่มี User จาก Host นั้นได้รับอนุญาต และเอกสารระบุว่า Attempt แบบนี้จะคืน Error 1130 และไม่เข้าสู่ Username/Password Authentication ต่อ.

⑫ นี่หมายความว่าอะไร

ถ้าขึ้น:

Host is not allowed to connect

อย่าเริ่มจากเปลี่ยน Password อย่างเดียว

เพราะ MariaDB อาจ Reject ตั้งแต่ Host Access Control

⑬ Error 1045 ต่างกันอย่างไร

Error 1045 มักเกี่ยวกับ:

Access denied

หลัง Authentication/Account Matching Context

ส่วน 1130 เน้น Host ไม่ได้รับอนุญาต.

⑭ วิธีตรวจ Account ที่มีอยู่

ผู้ดูแล Database สามารถตรวจ Accounts ที่อนุญาตไว้ตาม Environment

สิ่งที่ต้องสนใจคือ:

username
host

ไม่ใช่ Username อย่างเดียว

⑮ ตัวอย่าง

อาจพบ:

fivem@localhost

แต่ FiveM Server อยู่ที่:

192.168.1.50

นี่คือสิ่งที่ต้องตรวจ

⑯ SHOW GRANTS มีประโยชน์

MariaDB มี:

SHOW GRANTS FOR 'fivem'@'localhost';

เพื่อแสดงสิทธิ์ของ Account ที่ระบุ โดย Account Name ต้องระบุในรูปแบบ User/Host.

⑰ ถ้า Account Remote มีอยู่

เช่น:

'fivem'@'192.168.1.50'

ให้ตรวจ:

SHOW GRANTS FOR 'fivem'@'192.168.1.50';

⑱ อย่าเดา Host

ต้องใช้ Host ที่ MariaDB เห็นจริง

โดยเฉพาะเมื่อผ่าน:

  • NAT
  • Docker
  • Private Network
  • VPN

⑲ Public IP กับ MariaDB Source IP อาจไม่เหมือนกัน

ใน Infrastructure บางแบบ MariaDB อาจเห็น Source จาก Private/NAT Network

จึงควรดู Logs/Host Cache แทนการเดา

⑳ MariaDB Account รองรับ Host Patterns

MariaDB อธิบายว่า Account Names มี Username และ Hostname Components และ Host สามารถใช้ Pattern ตามไวยากรณ์ที่รองรับได้.

㉑ แล้วใช้ % ดีไหม

MariaDB Remote Access Guide แสดงตัวอย่างการอนุญาต Remote Users และอธิบายการกำหนด Account สำหรับ Hosts ต่าง ๆ.

แต่ Production FiveM ไม่ควรเปิด:

'fivem'@'%'

โดยอัตโนมัติเพียงเพราะง่าย หากสามารถจำกัด Source Host/IP ได้ชัดเจนกว่า

㉒ เพราะ % กว้างกว่า

ถ้า Account และ Firewall เปิดกว้างด้วย:

Attack Surface จะมากขึ้นโดยไม่จำเป็น

แนวทางที่ดีกว่าคือ Least Privilege:

  • Host เท่าที่จำเป็น
  • Database เท่าที่ต้องใช้
  • Privileges เท่าที่ Resource ต้องใช้

㉓ อย่าใช้ root เพื่อแก้ Error 1130

FiveM ไม่ควรเชื่อม MariaDB ด้วย Root เพียงเพราะ Remote User เดิมใช้ไม่ได้

㉔ สร้าง Dedicated User ดีกว่า

เช่นแนวคิด:

FiveM application account
↓
เฉพาะ FiveM database
↓
เฉพาะ source host
↓
เฉพาะ privileges ที่ต้องการ

MariaDB Remote Access Guide แนะนำการ Grant Privileges ให้ Accounts สำหรับ Remote Hosts โดยเฉพาะ.

㉕ CREATE USER ใช้รูปแบบ User@Host

ตัวอย่างโครงสร้าง:

CREATE USER 'fivem'@'192.168.1.50'
IDENTIFIED BY 'strong-password';

MariaDB ระบุ Account Names ในรูปแบบ 'user_name'@'host_name'.

㉖ แต่ห้าม Copy IP ตัวอย่างไปใช้

ต้องใส่ Source Host ของ FiveM Server จริง

㉗ แล้วให้สิทธิ์อย่างไร

ใช้ GRANT ตาม Database/Privileges ที่ Resource ต้องการ โดย MariaDB มี GRANT Statement สำหรับกำหนด Privileges ให้ Account ตาม User/Host.

㉘ อย่าให้ GRANT ALL ON *.* โดยไม่จำเป็น

FiveM ส่วนใหญ่ต้องใช้ Database ของตัวเอง

ไม่จำเป็นต้องให้สิทธิ์ Database ทั้ง Server หาก Resource ไม่ต้องใช้

㉙ ตัวอย่างแนวคิดที่จำกัด Scope

fivem user
↓
fivem database
↓
required privileges

ดีกว่าการให้สิทธิ์ทุก Database

㉚ ต้องรู้ Resource Requirement

บาง Resource ต้อง:

  • SELECT
  • INSERT
  • UPDATE
  • DELETE

และบางครั้ง Migration อาจต้อง Schema Privileges เพิ่ม

จึงไม่ควรเดา Permission Set แบบสากล

㉛ Production Account กับ Migration Account อาจแยกกัน

ในระบบที่ต้องการ Security มากขึ้น

Application Runtime อาจใช้สิทธิ์ต่ำกว่า Admin/Migration Account

แต่ขึ้นกับ Architecture

㉜ FiveM Paid Resource บางตัวขอ ALTER TABLE ตอน Start

ต้องตรวจ Documentation ของ Resource ก่อนลด Privileges

㉝ Error 1142 หลังแก้ 1130

ถ้า Host เชื่อมได้แล้วแต่ Account ไม่มีสิทธิ์ทำ Command:

อาจเจอ Error กลุ่ม:

command denied to user

แทน

นั่นหมายความว่าคุณผ่าน Host Connection Problem แล้ว แต่ Privilege บน Object/Command ยังไม่พอ.

㉞ นี่เป็น Progress

เดิม:

1130

หลังแก้:

1142

แสดงว่าปัญหาได้เลื่อนไปอีกขั้นหนึ่งแล้ว

㉟ อย่าเปิด Privileges ทั้งหมดทันที

อ่าน Command ที่ Denied แล้วเพิ่มเฉพาะ Permission ที่ Resource ต้องใช้

㊱ Remote MariaDB ต้อง Listen สำหรับ Remote Connection ด้วย

MariaDB Remote Connection Guide ระบุว่าการเปิด Remote Access ต้องพิจารณา Server Network Configuration เช่น bind-address ร่วมกับ User Privileges และ Firewall.

㊲ bind-address คืออะไร

ใช้กำหนด Network Interface/Address ที่ MariaDB Listen สำหรับ Connections

หาก MariaDB Bind เฉพาะ Local Interface:

Remote Client อาจไม่สามารถเข้า Database ผ่าน Network ได้.

㊳ แต่ถ้าขึ้น Error 1130 อยู่แล้ว

นี่หมายความว่า MariaDB ได้รับ Connection Attempt มากพอที่จะตอบ Host Privilege Error

ดังนั้น bind-address อาจไม่ใช่ Root Cause หลักในเคสนั้น

㊴ นี่สำคัญ

ถ้า Port เข้าไม่ได้เลย:

อาการอาจเป็น:

  • Connection refused
  • timeout

แทนที่จะเป็น MariaDB Error 1130

㊵ ดังนั้นอย่าแก้ bind-address ก่อนดู Error จริง

ถ้า MariaDB ตอบ Error 1130 ชัด:

ให้เริ่มที่ Account/Host ACL ก่อน

㊶ Firewall เป็นอีก Layer

MariaDB Remote Access Guide ระบุว่าต้องกำหนด Firewall ให้รองรับ Remote Connections ที่จำเป็นด้วย.

㊷ แต่ Error 1130 หมายความว่า Firewall ผ่านแล้วหรือไม่

ในหลายกรณี MariaDB ต้องได้รับ Connection ก่อนจึงตอบ Error นี้ได้

ดังนั้นถ้าเห็นข้อความ 1130 จาก MariaDB โดยตรง:

Host/Account Permission เป็นเบาะแสที่ชัดกว่า Firewall Block

㊸ อย่างไรก็ตามหลังแก้ Account

Firewall ยังต้องถูกต้องสำหรับ Connection Flow จริง

㊹ อย่าเปิด Port 3306 ให้ทุก IP

ถ้า Environment ใช้ Port นี้

ควรกำหนด Source ให้แคบที่สุดตาม Architecture

㊺ Port MariaDB ไม่จำเป็นต้องเป็น 3306 เสมอ

MariaDB Quickstart Connection Guide รองรับการระบุ Host/Port ตาม Connection Configuration จริง.

㊻ ตรวจ Connection String FiveM

ดู:

host
port
user
password
database

ว่าเป็น Database Server ที่ตั้งใจจริง

㊼ Error หลังย้าย Database

Connection String อาจยังชี้:

old-db.example

แทน Database ใหม่

㊽ Error หลัง Clone Server

Test Server อาจถือ Production DB Connection String มาด้วย

เป็นเรื่องที่ต้องระวังมาก

㊾ Test Server อาจมาจาก Host ที่ MariaDB ไม่อนุญาต

จึงเจอ 1130

ซึ่งจริง ๆ อาจเป็น Protection ที่ดี

㊿ อย่าแก้โดยเปิด % ทันที

เพราะ Test Server ที่ไม่ควรเข้า Production DB จะกลับเข้าได้

51. ตรวจ Environment Variables

บาง FiveM Stack ใช้ Connection String ผ่าน Config/Environment

หลัง Migration อาจยังคง:

old user
old host
old database

52. Error หลังเปลี่ยน Public IP

ถ้า FiveM VPS ได้ IP ใหม่:

MariaDB Account แบบผูก IP เดิมอาจไม่ Match

53. ต้องเปลี่ยน Account Host อย่างไร

อย่า DELETE User เดิมทันทีถ้ายังมี Production Service ใช้อยู่

อาจสร้าง Account ใหม่สำหรับ Host ใหม่ก่อน แล้วทดสอบ

54. หลัง Migration เสร็จ

ค่อยลบ Access เก่าที่ไม่ใช้งาน

เพื่อลด Attack Surface

55. อย่าปล่อย Old IP Access ไว้ตลอด

โดยเฉพาะถ้า IP เก่าไม่อยู่ในการควบคุมแล้ว

56. MariaDB ALTER USER ใช้แก้ Host ได้ไหม

MariaDB ALTER USER ใช้แก้ Properties ของ Existing Account แต่ Account Name ยังอ้าง User/Host Combination ตาม Account Model.

การเปลี่ยน Host Identity ของ Account ควรทำตาม Account-management method ที่เหมาะกับ MariaDB Version และ Environment ไม่ควรเดาคำสั่ง Production

57. วิธีที่ปลอดภัยกว่าในการ Migration

แนวคิด:

สร้าง account สำหรับ host ใหม่
↓
grant สิทธิ์ที่ต้องการ
↓
ทดสอบ
↓
ย้าย FiveM
↓
ตรวจ
↓
ลบ account host เก่าเมื่อไม่ใช้

58. ตรวจ Grants เดิม

ก่อนสร้าง Account ใหม่:

SHOW GRANTS FOR 'fivem'@'old-host';

สามารถใช้เป็น Reference ว่า Application เดิมต้องใช้ Privileges ใด.

59. อย่า Copy Grants โดยไม่ทบทวน

เพราะของเดิมอาจให้สิทธิ์กว้างเกินไปอยู่แล้ว

60. CURRENT_USER() มีประโยชน์อย่างไร

หลัง Connection สำเร็จ MariaDB CURRENT_USER() แสดง User/Host Combination ของ Account ที่ Server ใช้ Authenticate Client จริง.

ตัวอย่าง:

SELECT CURRENT_USER();

61. นี่ช่วยตรวจว่า MariaDB Match Account ตัวไหน

เช่นได้:

fivem@%

หรือ Account อื่นตาม Configurationจริง

62. USER() กับ CURRENT_USER() ต่างกันได้

MariaDB Documentation ระบุว่า CURRENT_USER() แสดง Account ที่ Server ใช้ Authenticate Client ซึ่งอาจแตกต่างจาก USER().

63. สำหรับ Debug Permission ใช้ CURRENT_USER() มีประโยชน์มาก

เพราะบอก Account จริงที่กำหนด Privileges

64. Error 1130 ยัง Connect ไม่สำเร็จ

จึงยัง Query CURRENT_USER() จาก Connection นั้นไม่ได้

ต้องใช้ Admin Session หรือหลังแก้ Connection แล้ว

65. Host Cache มีข้อมูล Error 1130

MariaDB performance_schema.host_cache มี:

COUNT_HOST_ACL_ERRORS

ซึ่งนับกรณีที่ไม่มี User จาก Host นั้นได้รับอนุญาตและ Connection ถูก Reject ด้วย Error 1130.

66. นี่ช่วยยืนยัน Root Cause

ถ้า Counter นี้เพิ่มตรง FiveM Host:

Host ACL/Account Matching เป็นจุดสำคัญ

67. ตรวจได้ด้วยแนวคิด

SELECT *
FROM performance_schema.host_cache;

หาก Environment เปิดใช้ Table นี้

68. อย่า UPDATE host_cache เอง

มันเป็น Diagnostic Data

ใช้ Account Management Commands แก้สิทธิ์จริง

69. Error 1130 หลังเปลี่ยน Password

Password ใหม่อาจไม่ใช่สาเหตุหลัก

ถ้า Host ACL ไม่ Match MariaDB อาจ Reject ก่อน Password Authentication.

70. Error หลังสร้าง User ใหม่

อาจสร้าง:

'fivem'@'localhost'

แต่ตั้งใจให้ Remote FiveM ใช้

นี่เป็นความผิดพลาดที่พบบ่อยในแนวคิด Account Matching

71. ต้องสร้าง Remote Account ให้ถูก Host

MariaDB Remote Access Guide แสดงว่าการ Grant Remote Access ต้องระบุ User Accounts ที่อนุญาตสำหรับ Remote Host.

72. Hostname ใช้แทน IP ได้ไหม

MariaDB Account Names รองรับ Host Name Component.

แต่ Infrastructure ที่ใช้ Hostname ต้องพิจารณา DNS/Name Resolution อย่างถูกต้อง

73. IP เหมาะกว่าเสมอไหม

ไม่เสมอ

Managed/Cloud Environment อาจมี Hostnames ที่ออกแบบมาให้ใช้

จึงต้องเลือกตาม Infrastructure

74. Wildcard IP Pattern

MariaDB Hostname Pattern สามารถ Match หลาย Hosts ได้ แต่ควรใช้เท่าที่จำเป็น ไม่ควรขยาย Scope โดยไม่มีเหตุผล.

75. Docker Network

FiveM กับ MariaDB อาจใช้:

container service name
private IP

แทน Public IP

76. อย่า Grant ให้ Public IP ถ้า MariaDB เห็น Docker Private Address

ต้องดู Source ที่ MariaDB รับจริง

77. Kubernetes/Container Environment

Pod/Container Addresses อาจเปลี่ยน

จึงต้องใช้ Network/Account Design ที่เหมาะกับ Platform

ไม่ควร Hard-code IP สุ่มจาก Container หนึ่งตัว

78. FiveM Server ทั่วไปบน VPS

ถ้าใช้ Remote DB แบบ Static IP:

การจำกัด Account/Firewall ตาม FiveM Source IP สามารถทำ Security ได้ง่ายกว่า

79. Shared NAT

หลาย Applications อาจออกด้วย IP เดียวกัน

MariaDB จะเห็น Host ตาม Network Path ที่มาถึงจริง

80. การ Grant Host จึงต้องเข้าใจ NAT

ไม่ใช่ดู IP บนเครื่อง FiveM อย่างเดียว

81. VPN

ถ้า FiveM เชื่อม DB ผ่าน VPN:

MariaDB อาจเห็น VPN Address

ต้อง Match Address นั้น

82. Error หลังเปิด VPN

ถ้า Source Address เปลี่ยน:

Account เดิมอาจไม่ Match

83. Error หลังปิด VPN

เหตุผลเดียวกัน

Source Host อาจเปลี่ยนกลับ

84. Cloud Firewall / Security Group

Remote Connection ต้องผ่าน Infrastructure Firewall ด้วย และ MariaDB Guide แนะนำให้เปิดเฉพาะ Port/Source ที่จำเป็น.

85. อย่าแก้ Error1130ด้วยปิด Firewallทั้งหมด

เพราะ MariaDB ตอบ Error นี้ได้อยู่แล้วแสดงว่า Connectionไปถึง Serverในกรณีดังกล่าว

86. Errorหลังเปลี่ยน DNS

ถ้า Connection Stringใช้ Hostnameและ DNSชี้ Databaseใหม่:

Databaseใหม่อาจไม่มี Accountสำหรับ FiveM Host

87. ดังนั้นดูปลายทางจริง

ไม่ใช่ดูเพียง Domain Name

88. ตรวจ Database Server ที่เชื่อมอยู่

เพราะ Dev/Prod Hostnamesอาจคล้ายกัน

89. Errorหลัง Restore MariaDB Users

ถ้า Restoreเฉพาะ Application Database แต่ไม่ได้ย้าย Account/Privilegesเหมือน Environmentเดิม:

Dataอาจอยู่ครบแต่ Remote Userยังเชื่อมไม่ได้

90. Database Data กับ MariaDB Accounts เป็นคนละส่วนของ Administration

อย่าคิดว่า Restore Tableแล้ว Users/Grantsทุกอย่างต้องตรงอัตโนมัติ

91. Errorหลัง Migration MariaDB ไปเครื่องใหม่

Checklist สำคัญ:

database data
database account
account host
grants
bind-address
firewall
connection string

92. ขาดเพียง Account Host

ก็เจอ Error1130ได้

93. ขาด Firewall

มักจะเข้า MariaDBไม่ได้ตั้งแต่ Network Layer

94. ขาด Grant

อาจเชื่อมสำเร็จแล้วเจอ Permission Errorตอน Query

95. Debug ตาม Layer

ดีที่สุด:

Network
↓
MariaDB listener
↓
Host ACL
↓
Authentication
↓
Database privileges
↓
SQL query

96. Error1130 อยู่ตรงไหน

ตรง Host ACL/Account Matching เป็นหลัก.

97. อย่าแก้ SQL Query

เพราะ Query ยังไม่ได้เริ่มทำงาน

98. ALTER TABLE ไม่ช่วย

เพราะปัญหาเกิดก่อน Applicationเข้าถึง Table

99. Repair Table ไม่ช่วย

ไม่เกี่ยวกับ Table Corruption

100. max_connections ไม่ช่วย

Error1040คือ Connection Limit

1130คือ Host Access

101. max_connect_errors ไม่ช่วย

นั่นเกี่ยวกับ Error1129/Host Blocking จาก Failed Connections ไม่ใช่ Host Account Authorization ของ1130

102. max_allowed_packet ไม่ช่วย

Packet Sizeเกิดหลัง Connection/Communication ไปไกลกว่า Host Access Stage

103. wait_timeout ไม่ช่วย

Connectionยังไม่ได้ผ่าน Host Authorization

104. net_read_timeout ไม่ช่วย

เป็นคนละ Stage

105. net_write_timeout ไม่ช่วย

เช่นเดียวกัน

106. FiveM Database Wrapper เปลี่ยน IP ได้ไหม

ตัว Wrapperไม่ได้เปลี่ยน Public Source IPโดยทั่วไป แต่การย้าย Server, Container, NATหรือNetwork Routingสามารถเปลี่ยน Hostที่ MariaDBเห็นได้

107. Errorหลังย้าย oxmysql ไปอีก Machine

ถ้า Database Client Processออกจาก Hostใหม่:

MariaDBจะเห็น Sourceตาม Networkใหม่

108. Resourceทุกตัว Errorพร้อมกัน

ถ้าใช้ Wrapperกลาง:

มีโอกาสสูงว่า Core Database Connectionถูก Reject

109. Resourceเดียว Error1130

อาจมี Resourceนั้นใช้ Database Connection Stringแยกจาก Core

110. ตัวอย่าง

Core:

db-main

Phone Resource:

db-phone

ถ้า Phoneต่อ Databaseอีก Hostหนึ่งและ Userไม่ได้รับอนุญาต:

Phoneอาจ Errorอยู่ตัวเดียว

111. อย่าคิดว่าทุก Resourceใช้ DBเดียว

ตรวจ Config Resourceนั้น

112. Errorหลังติด Phone Script

Paid Phoneบางตัวอาจต้อง Database Configurationของตัวเอง

ใช้ Documentationของ Resourceจริง

113. Errorหลังติด Logs Service

เช่นเดียวกัน

114. External API Server

ถ้า APIต้องเชื่อม MariaDBโดยตรง:

API Hostต้องมี Account/Firewallที่เหมาะ

115. แต่ควรให้ External Serviceเข้าถึง DBโดยตรงไหม

ขึ้นกับ Architecture

ไม่ควรเปิด MariaDBกว้างเพียงเพื่อทำ Integrationง่ายขึ้น

116. Application Serverเป็น Layerได้

ในระบบที่ต้องการ Securityมากขึ้น

แต่ไม่จำเป็นต้อง Rewrite FiveM Architectureเพื่อแก้1130

117. Errorเกิดบน phpMyAdmin แต่ FiveMปกติ

phpMyAdminอาจมาจาก Host/Userคนละ Context

อย่าแก้ FiveM Accountถ้า FiveMไม่ได้มีปัญหา

118. Errorจาก Workbench/Admin Tool ก็เช่นกัน

Hostต้นทางต่างกัน

119. ดูข้อความ %s

MariaDB Error 1130 ระบุ Hostที่ไม่อนุญาตในข้อความ

Hostนั้นคือเบาะแสหลัก.

120. Compare กับ FiveM Source

ถ้าข้อความเป็น:

Host '10.10.0.15'

ดูว่าเป็น FiveM Hostจริงหรือ:

  • Docker Gateway
  • NAT
  • Proxy
  • Admin PC

121. ถ้าไม่ใช่ FiveM

อย่าแก้ FiveM

122. Errorหลัง ISP เปลี่ยน Public IP

ถ้า FiveM Hostมี Dynamic Public IPและ Remote DB Grantแบบเจาะ IP:

Accessอาจเสียเมื่อ IPเปลี่ยน

123. Production Serverควรมี Stable Network Identityเมื่อเป็นไปได้

โดยเฉพาะระบบที่ใช้ IP Allowlisting

124. Dynamic IP + Remote DB มีความซับซ้อน

อาจต้องใช้:

  • VPN/private network
  • stable network
  • managed connectivity

ตาม Infrastructure

125. อย่าใช้ % เพื่อแก้ Dynamic IPทันที

เพราะจะขยาย Access Scopeมาก

126. Firewall Defense-in-Depth

แม้ Accountจำกัด Hostแล้ว:

Firewallที่จำกัด Sourceเพิ่มอีกชั้นได้.

127. Database Passwordยังต้องแข็งแรง

Host Restrictionไม่แทน Authentication

128. อย่าใส่ Passwordลง GitHub

Connection Stringควรถูกจัดการเป็น Secret

129. อย่าโพสต์ Connection Stringเต็มใน Discord

Mask:

user
password
host

ตามความเหมาะสม

130. Error1130ไม่ได้ต้องการ Passwordเพื่อขอความช่วยเหลือ

สิ่งที่มีประโยชน์คือ:

  • Error
  • Source Host
  • MariaDB Account Host
  • Network Architecture

131. วิธีทดสอบหลังแก้

จาก FiveM Hostจริง:

ทดสอบ Connection ด้วย MariaDB Client/Connectorที่เหมาะกับ Environment

MariaDB Quickstart Connection Guide รองรับการระบุ Host/User/Password/Protocol เพื่อทดสอบ Connection.

132. อย่าทดสอบจาก Laptop แล้วสรุปว่า FiveMต้องผ่าน

LaptopกับFiveM Serverเป็นคนละ Host

133. ทดสอบจาก Sourceจริง

นี่สำคัญมาก

134. ถ้าทดสอบ Command Lineผ่าน แต่ FiveMยังไม่ผ่าน

ตรวจ FiveM Connection String

อาจใช้:

  • Userคนละตัว
  • Hostคนละตัว
  • Portคนละตัว

135. ถ้า CLIก็ Error1130

Account/Host Accessยังไม่ถูก

136. ถ้า CLIขึ้น1045

Host Accessอาจผ่านแล้วแต่ Authentication/Credentialsมีปัญหา

137. ถ้า CLI Connection Refused

กลับไปตรวจ:

  • listener
  • bind-address
  • firewall
  • port

138. แยก Errorให้ถูกช่วยลดเวลามาก

1130 → host ACL
1045 → authentication
1040 → connection capacity
1129 → host blocked

139. Errorหลังแก้แล้วเป็น1142

แปลว่า Connect/Authenticateผ่านขึ้นมาอีกขั้น แต่ Permission Queryยังไม่พอ.

140. ใช้ SHOW GRANTS

เพื่อดูสิทธิ์ Accountปัจจุบันแทนการเดา.

141. อย่าเพิ่ม Privilegesทีละมั่ว

อ่าน Resource Requirements

142. Production Migration Checklist

① หา FiveM source IP/host
② ตรวจ database host
③ ตรวจ user@host
④ ตรวจ grants
⑤ ตรวจ bind-address
⑥ ตรวจ firewall
⑦ ทดสอบจาก FiveM host
⑧ เปิด FiveM wrapper
⑨ ดู console
⑩ ลบ old access หลัง migration

143. Errorหลังติด Test Server

ตรวจว่า Testกำลังชี้ Production Databaseหรือไม่

144. ถ้าใช่

อาจไม่ควรแก้1130ให้ Testเข้าถึง Productionเลย

ควรใช้ Test Databaseแยก

145. Staging Database

ช่วยลดความเสี่ยงจาก:

  • SQL Migration
  • Resource Testing
  • Destructive Commands

146. อย่า Grant Dev Hostเข้าถึง Productionเพียงเพื่อสะดวก

ถ้าไม่จำเป็น

147. Error1130อาจเป็น Security Featureที่กำลังทำงานถูกต้อง

ในบางกรณี Hostที่ไม่ควรเข้า Databaseถูกปฏิเสธตามที่ตั้งใจ

148. ก่อนแก้ถามว่า Hostนี้ควรเข้าได้จริงไหม

สำคัญมาก

149. ถ้า Hostไม่รู้จัก

อย่า Grantทันที

ตรวจว่าเป็นใครก่อน

150. Error Logจาก Unknown IP

อาจเป็น Internet Scanถ้า Databaseเปิด Public

แต่ Error1130เพียงตัวเดียวไม่พิสูจน์การโจมตี

151. ถ้า DBไม่จำเป็นต้อง Public

ใช้ Firewallจำกัด Sourceอย่างเหมาะสม.

152. อย่าทำ skip-grant-tables

เพื่อแก้1130

โหมดนี้ Bypass Privilege System และ MariaDB Documentation เองเตือนให้ใช้ด้วยความระมัดระวังอย่างมากในสถานการณ์ Recovery เฉพาะ.

153. นี่เป็น Fixที่อันตรายเกินความจำเป็น

Error1130แก้ได้ด้วย Account/Remote Access Configurationที่ถูกต้อง

154. อย่าปิด Authentication

เด็ดขาด

155. อย่าใช้ root remoteโดยไม่จำเป็น

สร้าง Application Accountเฉพาะ FiveMดีกว่า

156. สิ่งที่ไม่ควรทำ

  • เปิด MariaDB ให้ทุก IP
  • ใช้ root เพื่อแก้เร็ว
  • GRANT ALL ON *.* แบบไม่จำเป็น
  • ปิด Firewall
  • ใช้ skip-grant-tables
  • Clear FiveM Cache
  • Restart MariaDBซ้ำ
  • ลบ Database
  • ALTER Tables
  • เปลี่ยน max_connect_errors

157. FiveM MySQL Error 1130 FAQ

FiveM Host is not allowed to connect คืออะไร

MariaDB Error1130 / SQLSTATE HY000 / ER_HOST_NOT_PRIVILEGED หมายถึง Hostต้นทางไม่มีสิทธิ์เชื่อม MariaDB ตาม Host ACL/Account Configuration.

MariaDB User มีอยู่แล้วทำไมยังเข้าไม่ได้

เพราะ MariaDB Accountsประกอบด้วยทั้ง UsernameและHostname เช่น 'user'@'host'; Userชื่อเดียวกันจากต่าง Hostอาจ Match Accountคนละตัวหรือไม่ Matchเลย.

'fivem'@'localhost' ใช้จาก Remote VPS ได้ไหม

Account localhost ถูกกำหนดสำหรับ Hostนั้น ไม่ได้หมายความว่า Remote Hostทุกตัวจะได้รับสิทธิ์; Remote Accessต้องมี Account/Grantที่ Match Remote Hostตาม Configuration.

Error1130กับ1129ต่างกันอย่างไร

1129คือ Hostถูก Blockจาก Connection Errors ส่วน1130คือ Hostไม่ได้รับอนุญาตให้ Connect.

FLUSH HOSTS ช่วยไหม

ไม่ใช่ Fixหลักของ1130 เพราะ Host Cacheระบุว่า1130เกิดจาก Host ACL ไม่มี Accountที่อนุญาต ส่วน Host Blockingเป็นอีกกรณี.

Error1130กับ1045ต่างกันอย่างไร

1130เกิดที่ Host Access Control ส่วน1045เกี่ยวกับ Access Denied/Authentication Contextหลังจากนั้นใน Connection Flow

Error1130กับ1130หลังย้าย VPSทำอย่างไร

ตรวจ Source IPใหม่กับ MariaDB Account 'user'@'host' และ Firewall/Remote Access Configuration.

ดูสิทธิ์ Userอย่างไร

ใช้:

SHOW GRANTS FOR 'user'@'host';

ตาม Accountจริง.

ดู Accountที่ Authenticateจริงอย่างไร

หลัง Connectionสำเร็จ:

SELECT CURRENT_USER();

MariaDBระบุว่า Functionนี้คืน User/Host Combinationของ Accountที่ใช้ Authenticate Clientจริง.

% คืออะไร

เป็น Host Patternที่สามารถ Match Hostsกว้างขึ้น แต่ควรใช้เท่าที่ Security Architectureจำเป็น.

ใช้ 'fivem'@'%' ดีไหม

อาจใช้งานได้ตาม Account Configuration แต่ไม่ควรเลือกเป็น Defaultเพียงเพราะสะดวก หากสามารถจำกัด FiveM Hostได้

ต้องเปิด Port3306 ให้ทุกคนไหม

ไม่ MariaDB Remote Connection Guide แนะนำการตั้ง Firewallสำหรับ Remote Connections และควรเปิดเฉพาะ Sourceที่จำเป็น.

bind-addressเกี่ยวไหม

เกี่ยวกับการให้ MariaDB Listenบน Network Interfaceสำหรับ Remote Connections.

ถ้าขึ้น1130แล้ว bind-addressยังผิดได้ไหม

ถ้า MariaDBตอบ1130ได้ Connectionได้ถึง Serverระดับหนึ่งแล้ว จึงควรตรวจ Host ACLก่อน แต่ Configurationทั้งหมดควรถูกตรวจใน Remote Setup

Firewallเกี่ยวไหม

เกี่ยวกับ Remote Access Layer แต่ถ้า MariaDBตอบ1130ชัด Account/Host ACLเป็นเบาะแสตรงกว่า

Passwordผิดทำ1130ไหม

Host Cache Documentationระบุว่า1130เกิดก่อน Username/Password Authenticationเมื่อไม่มี Userจาก Hostนั้นได้รับอนุญาต.

เปลี่ยน Passwordช่วยไหม

ไม่ หาก Root Causeคือ Host Accountไม่ Match

ใช้ rootช่วยไหม

ไม่ควร ควรแก้ Dedicated Application Accountให้ถูกต้อง

Resourceเดียวขึ้น1130ทำไม

Resourceนั้นอาจใช้ Connection String/Databaseอีกชุดต่างจาก Core FiveM

ทุก Resourceขึ้น1130ทำไม

หากทั้งหมดใช้ Wrapperกลาง Shared Database Connectionก็มีโอกาสเป็น Core Account/Host Configuration

Errorหลังเปิด Test Serverทำอย่างไร

ตรวจว่า Test Serverกำลังพยายามเข้า Production Databaseหรือไม่ก่อน Grant Access

Errorหลังเปลี่ยน IPทำอย่างไร

ปรับ Account/Firewallให้ Sourceใหม่ตาม Security Design และนำ Accessเก่าออกเมื่อเลิกใช้

Dockerเกี่ยวไหม

MariaDBอาจเห็น Source Hostจาก Container Network ไม่ใช่ Public IP จึงต้องตรวจ Hostจริงที่ Serverเห็น

VPNเกี่ยวไหม

ได้ เพราะ VPNสามารถเปลี่ยน Source Addressที่ MariaDBเห็น

NATเกี่ยวไหม

ได้เพราะ Source Addressอาจถูก Translateก่อนถึง MariaDB

Error1130หมายความว่าโดน Hackไหม

ไม่ Errorนี้เพียงบอกว่า Hostไม่ได้รับอนุญาต

Unknown Hostควร Grantไหม

ไม่ ควรตรวจ Identityของ Hostก่อน

ต้องใช้ skip-grant-tables ไหม

ไม่ MariaDBระบุว่าโหมดนี้ Bypass Privilege Systemและควรใช้ด้วยความระมัดระวังมากใน Recovery Cases ไม่ใช่ Fixปกติของ1130.

ต้อง Restart MariaDBไหม

โดยทั่วไปการแก้ Account/Grantไม่ควรเริ่มจาก Restart Database

Clear FiveM Cacheช่วยไหม

ไม่

ต้องลบ Databaseไหม

ไม่

ต้อง Repair Tableไหม

ไม่

ต้องแก้ Schemaไหม

ไม่

ต้องเพิ่ม max_connectionsไหม

ไม่

ต้องเพิ่ม max_connect_errorsไหม

ไม่ เพราะนั่นเกี่ยวกับ Host Blocking/1129มากกว่า

ต้อง Backupไหม

ถ้าแก้เพียง Account/Grantไม่ต้องแก้ Player Data แต่ก่อน Migration Database, Schema Changeหรือ Destructive Operationsก็ควร Backupตามปกติ

สรุป FiveM MySQL Host Is Not Allowed to Connect Error 1130

FiveM MySQL/MariaDB Error 1130 Host is not allowed to connect to this MariaDB server เกิดเมื่อ MariaDB ไม่พบ Account ที่อนุญาตให้ Host ต้นทางนั้น Connect โดย MariaDB Accounts ใช้รูปแบบ 'username'@'hostname' ดังนั้น Userชื่อเดียวกันจาก Hostต่างกันไม่ได้หมายความว่าจะมีสิทธิ์เหมือนกัน.

ให้ไล่ตรวจตามนี้:

Error 1130
↓
ดู Host ใน Error
↓
Host นี้คือ FiveM จริงหรือไม่
↓
ตรวจ MariaDB user@host
↓
ตรวจ SHOW GRANTS
↓
ตรวจ Remote Access
↓
ตรวจ bind-address
↓
ตรวจ Firewall
↓
แก้ Account ให้ Match Host จริง
↓
ทดสอบจาก FiveM Server
↓
ตรวจ CURRENT_USER หลังเชื่อมสำเร็จ

สิ่งที่ comsiam แนะนำคืออย่าแก้ Error1130ด้วยการสร้าง 'fivem'@'%', เปิด Database Portให้ทุก IPหรือใช้ rootทันที เพราะ MariaDBมี Account Modelแบบ User+Host และ Remote Accessควรถูกจำกัดให้เฉพาะ Sourceที่ต้องใช้งานจริง หาก FiveMมี Static IP การกำหนด AccountและFirewallให้ตรง Sourceนั้นจะปลอดภัยกว่าเปิดกว้างโดยไม่จำเป็น.

อีกหลักที่ comsiam แนะนำคือหลัง Migration Serverให้ตรวจครบทั้ง Connection String → Source IP → MariaDB User@Host → SHOW GRANTS → bind-address → Firewall ถ้า Command-line Testจาก FiveM Hostผ่านแต่ Resourceยัง Error ให้กลับไปตรวจ Connection Stringของ Resource/Wrapper เพราะมีโอกาสสูงว่า FiveMกำลังใช้ User, HostหรือDatabaseคนละชุดกับที่เพิ่งทดสอบ

Comments

Popular posts from this blog

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

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

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