Appunti di Programmazione

MySQL - Errore 3948

Nelle nuove installazioni di MySQL, di default è disbilitata l'opzione di caricare dati tramite l'istruzione 'LOAD DATA LOCAL INFILE...' come la seguente:

mysql> LOAD DATA LOCAL INFILE "/Users/gandalfrank/Desktop/Giocatori.txt" INTO TABLE Giocatori;

Pertanto se si tenta di eseguire il comando sopra citato si ottiene l'errore:

ERROR 3948 (42000): Loading local data is disabled;
this must be enabled on both the client and server sides

Per prima cosa verifichiamo lo stato dellla variabile 'local_infile' :

mysql> SHOW VARIABLES LIKE 'LOCAL_INFILE';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| local_infile  | OFF   |
+---------------+-------+
1 row in set (0,01 sec)

La variabile risulta impostata a "OFF" e per evitare di incorrere nuovamente nell'errore, è necessario impostarla ad "ON" sia sul server che sul client, come sottolineato nel messaggio di errore stesso.

Sul Server MySQL:

SET GLOBAL local_infile = true;

Per avere la variabile impostata correttamente anche in locale è sufficiente uscire da MySQL e effettuare nuovamente il login in questo modo:

mysql -u nome_utente -p --local-infile=1

Oppure come root:

mysql -u root -p --local-infile=1

A questo punto si può tranquillamente caricare i dati attraverso l'istruzione 'LOAD DATA LOCAL INFILE...'