Rezolvarea erorii "Numele caracterului este gresit" Tipărire

  • 0

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/my.cnf

3. Editează configurarea

nano /usr/local/my.cnf
# sau
ee /usr/local/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:
    1. Fă un backup complet:
      mysqldump -u root -p --all-databases > backup.sql
      
    2. Dacă problema persistă, reinstalează MySQL și importă din nou bazele de date.

✅ 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.


Răspunsul a fost util?

« înapoi