2009-04-08 12 views
69

Sto cercando di aggiungere una riga a una tabella InnoDB con una semplice query:ERRORE 1114 (HY000): La tabella è piena

INSERT INTO zip_codes (zip_code, city) VALUES ('90210', 'Beverly Hills'); 

Ma quando tento questa query, ottengo il seguente:

ERROR 1114 (HY000): The table `zip_codes` is full 

fare un "SELECT COUNT (*) FROM zip_codes" mi dà 188,959 righe, che non sembrano come troppi considerando che ho un altro tavolo con 810,635 righe in quello stesso database.

Sono abbastanza inesperto con il motore InnoDB e non ho mai riscontrato questo problema con MyISAM. Quali sono alcuni dei potenziali problemi qui?

MODIFICA: questo si verifica solo quando si aggiunge una riga alla tabella zip_codes.

+0

L'errore si verifica quando si tenta di inserire in una tabella o solo in una zip_codes? –

risposta

64

EDIT: primo controllo, se non si è a corto di spazio su disco, prima di risolvere per la risoluzione di configurazione legati.

Lei sembra avere una dimensione massima troppo bassa per la vostra innodb_data_file_path nel vostro my.cnf, In questo esempio

innodb_data_file_path = ibdata1:10M:autoextend:max:512M 

non è possibile ospitare più di 512 MB di dati in tutte le tabelle InnoDB combinati.

Forse dovresti passare a uno schema innodb-per-table usando innodb_file_per_table.

+0

C dove otteniamo questo file my.cnf in ubuntu –

+2

@Nadh In Ubuntu 16.04 fa parte di '/ etc/mysql /' ed è parzialmente suddiviso in file aggiuntivi in ​​'/ etc/mysql/conf.d' –

2

Per citare i documenti MySQL.

The InnoDB storage engine maintains InnoDB tables within a tablespace that can be created from several files. This allows a table to exceed the maximum individual file size. The tablespace can include raw disk partitions, which allows extremely large tables. The maximum tablespace size is 64TB.

If you are using InnoDB tables and run out of room in the InnoDB tablespace. In this case, the solution is to extend the InnoDB tablespace. See Section 13.2.5, [“Adding, Removing, or Resizing InnoDB Data and Log Files”.]

5

A meno che non sia stata abilitata l'opzione innodb_file_per_table, InnoDB conserva tutti i dati in un unico file, solitamente chiamato ibdata1.

Controllare la dimensione di tale file e verificare di disporre di spazio su disco sufficiente nell'unità in cui risiede.

0

Questo potrebbe anche essere il limite di InnoDB per il numero di transazioni aperte:

http://bugs.mysql.com/bug.php?id=26590

at 1024 transactions, that have undo records (as in, edited any data), InnoDB will fail to work

14

è necessario modificare il tappo limite impostato in my.cnf per i tavoli INNO_DB. Questo limite di memoria non è impostato per le singole tabelle, è impostato per tutte le tabelle combinate.

Se si desidera che la memoria autoextend a 512MB

innodb_data_file_path = ibdata1:10M:autoextend:max:512M 

Se non si conosce il limite o non si vuole mettere un tappo di limite, è possibile modificare in questo modo

innodb_data_file_path = ibdata1:10M:autoextend 
+0

Abbiamo ospitato il nostro ddbb su Amazon ed è stato configurato con autoextend.Ma abbiamo avuto lo stesso problema che presumo fosse dovuto al raggiungimento del limite memorizzato configurato – borjab

8

Nel mio caso, questo perché la partizione che ospita il file ibdata1 era piena.

22

si riceverà anche lo stesso errore ERRORE 1114 (HY000): La tabella '# sql-310a_8867d7f' è pieno

se si tenta di aggiungere un indice a una tabella che utilizza il motore di archiviazione MEMORIA.

68

Un altro motivo possibile è che la partizione è piena: è proprio quello che mi è successo ora.

+1

Questa dovrebbe essere sempre la prima cosa da verificare. Torna sempre al cavo di alimentazione, mi sono imbattuto in questo molte volte. –

+1

Mi hai salvato poche ore cercando di cambiare la configurazione di mysql. La partizione primaria era piena. Dovevo spostare il database mysql nella partizione dati e quindi creare un collegamento software –

9

Questo errore compare anche se la partizione su cui risiede tmpdir riempie (a causa di una tabella alter o altro

7

Se si utilizza NDBCLUSTER come motore di archiviazione, si dovrebbe aumentare DataMemory e IndexMemory.

Mysql FQA

8

È possibile che si stia esaurendo lo spazio nella partizione in cui sono memorizzate le tabelle mysql (in genere/var/lib/mysql) o in cui sono archiviate le tabelle temporanee (in genere/tmp).

Si consiglia di: - monitorare lo spazio libero durante la creazione dell'indice. - Puntare la variabile MySQL di tmpdir in una posizione diversa. Ciò richiede un riavvio del server.

3

avevamo: SQLSTATE [HY000]: Errore generale: 1114 La tabella 'catalog_product_index_price_bundle_sel_tmp' è pieno

risolto:

modifica di configurazione del db:

nano /etc/my.cnf

tmp_table_size = 256M max_heap_table_size = 256M

  • restart db
+1

Queste impostazioni 512M sono pericolose. Controllano la dimensione massima della memoria per le tabelle temporanee in selezioni complesse. Non è solo "per connessione", ma anche "per tabella tmp". Quindi, quei valori potrebbero facilmente farti esaurire la RAM. –

1

Nel mio caso la memoria del server era piena in modo che il DB non potesse scrivere i dati temporanei. Per risolverlo devi solo fare un po 'di posto sul tuo disco.

0

Su CentOS 7 l'arresto e l'avvio del servizio MySQL sono stati risolti per me.

sudo service mysql stop

sudo service mysql start

6

Anch'io affrontato questo errore durante l'importazione di un file di database sql 8GB. Controllato il mio drive di installazione mysql. Non è rimasto spazio nell'unità. Così ottenuto un po 'di spazio rimuovendo gli elementi indesiderati e ri-eseguito il mio comando di importazione del database. Questa volta ha avuto successo.

1

Ho riscontrato lo stesso problema a causa dello spazio su disco insufficiente. E la partizione che ospita il file ibdata1 che è il tablespace di sistema dell'infrastruttura InnoDB era piena.

1

Si è verificato questo problema ... nel mio caso, ho esaurito la memoria sul mio server dedicato. Controlla se tutto il resto fallisce e prendi in considerazione l'aumento dello spazio su disco o la rimozione di dati o file indesiderati.

Problemi correlati