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...'