Rezolvarea erorii „InnoDB: Could not open or create the system tablespace” pe FreeBSD (Metin2/MySQL) Tipărire

  • 0

Descriere

Această eroare apare atunci când MySQL/MariaDB nu poate deschide sau crea tablespace-ul principal ibdata1. De obicei, problema apare pe serverele Metin2 instalate pe FreeBSD, atunci când configurația din my.cnf nu corespunde cu fișierele existente pe disc.

Cauze comune

  • Fișiere InnoDB șterse sau corupte
    Dacă ai eliminat ibdata1, ib_logfile0, ib_logfile1, MySQL nu poate să le reconstruiască dacă există deja baze de date.
  • Configurare greșită în my.cnf
    Directiva innodb_data_file_path nu corespunde cu fișierele din /var/db/mysql/ (sau directorul de date setat).
  • Permisiuni incorecte
    Utilizatorul mysql nu are drepturi de citire/scriere asupra datadir-ului.
  • Lipsă spațiu pe disc
    Nu există suficient spațiu pentru a crea tablespace-ul.

Pași pentru rezolvare

1. Verifică directorul de date (datadir)

ls -lh /var/db/mysql/

Ar trebui să vezi fișiere precum ibdata1, ib_logfile0, ib_logfile1 și foldere cu bazele de date (player, account etc.).

2. Verifică permisiunile

chown -R mysql:mysql /var/db/mysql
chmod 750 /var/db/mysql

3. Verifică fișierul my.cnf

De obicei se află în /usr/local/etc/mysql/my.cnf sau /etc/my.cnf. Caută:

[mysqld]
innodb_data_file_path=ibdata1:10M:autoextend
innodb_log_file_size=5M
innodb_log_files_in_group=2

Asigură-te că valorile corespund cu fișierele existente. Dacă ai modificat ceva și nu funcționează, revino la valoarea implicită:

innodb_data_file_path = ibdata1:10M:autoextend

4. Dacă NU ai date importante (instalare nouă)

Poți șterge fișierele corupte și MySQL le va regenera:

service mysql-server stop
rm -f /var/db/mysql/ibdata1 /var/db/mysql/ib_logfile*
service mysql-server start

5. Dacă AI date importante (baze Metin2 existente)

⚠️ Nu șterge ibdata1. În acest caz:

  • Ajustează my.cnf pentru a corespunde dimensiunii și căii reale a ibdata1.
  • Verifică să nu fi schimbat innodb_file_per_table.
  • Dacă fișierul este corupt, încearcă modul de recuperare InnoDB:
[mysqld]
innodb_force_recovery = 1

Pune această linie în my.cnf (poți crește valoarea până la 6 dacă MySQL nu pornește). După pornire, fă un dump al bazelor pentru restaurare.

✅ Concluzie

Eroarea „InnoDB: Could not open or create the system tablespace” se rezolvă prin verificarea fișierelor ibdata1, a configurării my.cnf, a permisiunilor și a spațiului pe disc. Dacă datele sunt importante, folosește innodb_force_recovery și salvează bazele de date înainte de reinstalare.


Răspunsul a fost util?

« înapoi