sql >> Database teknologi >  >> RDS >> Mysql

Fejl:Der findes bordplads til tabel xxx. Kassér venligst bordpladsen før IMPORT

Lidt sent her, men generelt har jeg set dette problem opstå, når du får en 'tablespace fuld'-fejl, når du kører i en 'innodb_file_per_table'-tilstand. Uden at gå for meget i detaljer (mere her ), er databaseserverens tablespace defineret af indstillingen innodb_data_file_path og er som standard ret lille. Selv gjort større, kan 'tablespace fuld' stadig forekomme med større forespørgsler og sådan (masser af ikke-table 'ting' er gemt derinde, fortryd logfiler, caches osv...).

Anyways, jeg fandt ud af, at hvis du kigger i OS-mappen, hvor filerne pr. tabel er gemt, /var/lib/mysql som standard på OSX, /usr/local/var/mysql med homebrew iirc, vil du finde en forældreløse tabelnavn.ibd-fil uden den normale ledsagende tabelnavn.frm-fil. Hvis du flytter den .ibd-fil til en sikker midlertidig placering (bare for en sikkerheds skyld), skulle det løse problemet.

$ 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/

En advarsel dog, sørg for, hvad der nogensinde forårsager problemet oprindeligt, f.eks. lang kørende forespørgsel, låst tabel osv... er blevet ryddet. Ellers ender du bare med en anden forældreløs .ibd-fil, når du prøver en anden gang.



  1. Sådan bruges Distributed AD til at reducere patchingstiden i Oracle EBS

  2. Returner kolonneprivilegier fra en sammenkædet server i SQL Server (T-SQL-eksempler)

  3. java , Korrekt brug af statiske variabler for at forhindre dødvande - Synkronisering

  4. TransactSQL for at køre et andet TransactSQL-script