Descriere
Această problemă apare atunci când serverul MySQL/MariaDB rulează în modul strict (STRICT_TRANS_TABLES
). În acest mod, baza de date refuză inserările în coloane fără valoare implicită (DEFAULT
) și care nu acceptă NULL
.
Acest comportament afectează frecvent:
- Serverele Metin2 (nu se mai pot crea caractere noi, apare eroarea „Numele caracterului este greșit”).
Simptome
Field 'cevaaici' doesn't have a default value
Data truncated for column 'size' at row 1
În aplicații: imposibilitatea de a adăuga sau modifica date noi.
Soluție
1. Accesează serverul prin putty
2. Localizează fișierul de configurare
Fișierul my.cnf
se află, de regulă, în:
/usr/local/etc/mysql/my.cnf
3. Editează configurarea
nano /usr/local/etc/mysql/my.cnf
# sau
ee /usr/local/etc/mysql/my.cnf
Caută linia (daca nu exista nu este nimic, este perfect normal):
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
Și modifică astfel (dacă linia de mai sus nu există, doar adaugă linia de mai jos in secțiunea de [mysqld] ):
sql_mode=NO_ENGINE_SUBSTITUTION
4. Salvează și repornește serviciul MySQL/MariaDB
service mysql-server restart
⚠️ Notă importantă
- Dacă eroarea a apărut deja, unele tabele pot fi afectate.
- Recomandat:
- Fă un backup complet:
mysqldump -u root -p --all-databases > backup.sql
- Dacă problema persistă, reinstalează MySQL și importă din nou bazele de date.
- Fă un backup complet:
✅ Concluzie
Prin dezactivarea modului STRICT_TRANS_TABLES
, erorile de tip „Field 'X' doesn't have a default value” dispar, iar inserările automate funcționează corect.