Veritabanı bağlantısı başarısız (oxmysql / mysql-async)
Sunucun veritabanına ulaşamıyor. Bu düzelene kadar kaydeden ya da yükleyen hiçbir şey çalışmaz.
Önce şunu yap
Veritabanının çalıştığını ve server.cfg içindeki bağlantı satırında doğru kullanıcı adı ile parolanın olduğunu kontrol et.
Ne anlama gelir
Veritabanı katmanı MySQL'e ulaşamadı, ya da ulaştı ve reddedildi. Bu düzelene kadar her kaynaktaki her sorgu başarısız olur, o yüzden bunun altındaki bir duvar dolusu ilgisiz veritabanı hatası beklenen bir şeydir ve şimdilik okumaya değmez.
Hangi yarının başarısız olduğunu node hata kodu söyler:
• ECONNREFUSED — ana makineye ulaşıldı, o portta dinleyen yok
• ETIMEDOUT — ana makineye hiç ulaşılamadı (güvenlik duvarı, yanlış IP)
• ENOTFOUND / getaddrinfo — ana makine adı çözülmüyor
• ER_ACCESS_DENIED_ERROR — MySQL'e ulaşıldı, kullanıcı ya da parola yanlış
• ER_BAD_DB_ERROR — bağlanıldı, ama o veritabanı yok
Neden olur
Ne sıklıkla doğru cevap olduğuna göre sıralı.
- 1
MySQL çalışmıyor
Yerel bir makinede yeniden başlatmadan sonra, ya da servisin hiç etkinleştirilmediği yeni bir kutuda en yaygınıdır.
- 2
Bağlantı metni yanlış ya da bozuk
set mysql_connection_stringtek satır olmalı, server.cfg içinde, onu kullanan kaynaklardan önce. İki biçim de çalışır ama noktalı virgüllü biçim boşluklar konusunda affetmez:set mysql_connection_string "mysql://user:password@localhost/database?charset=utf8mb4"
- 3
Özel karakterli, kaçırılmamış bir parola
Parola içindeki
@,:,/ve#URI biçimini bozar. Onları yüzde ile kodla ya da anahtar/değer biçimini kullan. - 4
Kullanıcının bu ana makineden hakkı yok
MySQL yetkileri ana makine başınadır.
user@localhostolarak oluşturulmuş bir kullanıcı, doğru parolayla bile başka bir makineden bağlanamaz. - 5
Veritabanı henüz yok
Bağlantı başarılı olur ve USE başarısız olur. Framework'ün SQL'i hiç içe aktarılmamıştır.
Hangisinin seninki olduğu nasıl anlaşılır
Cümleyi değil, kodu oku. Sonra aynı makineden aynı kimlik bilgileriyle bağlanmayı dene:
mysql -h 127.0.0.1 -u kullanicin -p veritabanin
Bu da başarısız olursa sorun FiveM değil MySQL'dir. MySQL yetkilerinde localhost ile 127.0.0.1 birbirinin yerine geçmez, unutma.
Nereye bakmalı
server.cfg, set mysql_connection_string satırı, ve oxmysql'in sorgu yapan her şeyden önce ensure edilip edilmediği.
Nasıl düzeltilir
# server.cfg — veritabanına dokunan her kaynaktan önce set mysql_connection_string "mysql://fivem:pass@127.0.0.1/fivem?charset=utf8mb4" ensure oxmysql
Uzaktaysa kullanıcıya düzgün yetki ver:
CREATE USER 'fivem'@'%' IDENTIFIED BY 'pass'; GRANT ALL PRIVILEGES ON fivem.* TO 'fivem'@'%'; FLUSH PRIVILEGES;
Hâlâ kendi kodunda mı takıldın?
Bu sayfa, bu hatanın genelde ne anlama geldiğini anlatır. Konsolunu Server Fixer'a yapıştır; içindeki her şeyi sıraya dizer ve önce ne yapman gerektiğini söyler. Kendin uğraşmak istemiyorsan ORBIE script'i onarır ve kaynağı sunucuna atmaya hazır geri verir.
bug_reportServer Fixer'ı açBu tür bir hata için Script Optimizer buna yol açan sorgu kalıplarını yakalar.