Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Kesalahan:Tablespace untuk tabel xxx ada. Harap BUANG tablespace sebelum IMPORT

Sedikit terlambat di sini tetapi secara umum saya telah melihat masalah ini terjadi ketika Anda mendapatkan kesalahan 'tablespace full' saat berjalan dalam mode 'innodb_file_per_table'. Tanpa membahas terlalu detail (lebih lanjut di sini ), tablespace server database ditentukan oleh pengaturan innodb_data_file_path dan secara default agak kecil. Bahkan dibuat lebih besar, 'tablespace full' masih dapat terjadi dengan kueri yang lebih besar dan semacamnya (banyak 'barang' non-tabel disimpan di sana, batalkan log, cache, dll...).

Bagaimanapun, saya menemukan bahwa jika Anda melihat di direktori OS tempat file-per-tabel disimpan, /var/lib/mysql secara default di OSX, /usr/local/var/mysql dengan homebrew iirc, Anda akan menemukan file tablename.ibd yatim piatu tanpa file tablename.frm pendamping normal itu. Jika Anda memindahkan file .ibd itu ke lokasi sementara yang aman (hanya untuk amannya) itu akan menyelesaikan masalah.

$ ls /var/lib/mysql

table1.frm
table1.idb
table2.frm
table2.idb
table3.idb <- problem table, no table3.frm
table4.frm
table4.idb

$ mkdir /tmp/mysql_orphans
$ mv /var/lib/mysql/table3.ibd /tmp/mysql_orphans/

Namun, satu peringatan, pastikan apa yang menyebabkan masalah pada awalnya, mis. kueri yang berjalan lama, tabel terkunci, dll ... telah dihapus. Jika tidak, Anda hanya akan mendapatkan file .ibd yatim piatu lainnya saat Anda mencoba untuk kedua kalinya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MIN() – Temukan Nilai Minimum dalam Kolom di MySQL

  2. CURRENT_DATE/CURDATE() tidak berfungsi sebagai nilai DATE default

  3. Jarak Lingkaran Besar MySQL (rumus Haversine)

  4. Bagaimana cara membuat file bahasa Codeigniter dari database?

  5. Bagaimana cara menghindari tanda kutip (') di MySql?