mcaisco
03-03-2009, 09:38
Salve,
ho installato MySQL 5.1 in locale come servizio di Windows XP. Sto avendo problemi nell'accedere ad alcuni file tramite la funzione sql "load data". Questa istruzione sql dovrebbe semplicemente leggere dei dati opportunamente formattati da un file testuale e copiarli in una tabella di un database. Ma aldilà del funzionamento, succede che se il file è indicato con un path assoluto sotto C: funziona correttamente.
Se uso un'unità di rete W: creata in modo che punti alla stessa directory che contiene il file da cercare, il file non viene trovato (errore di file not found).
Nel reference manual (http://dev.mysql.com/doc/refman/5.1/en/load-data.html) spiega che l'istruzione "load data" viene eseguita sul processo server e quindi i path sono da riferirsi ad esso. Nel caso si voglia accedere a file che non sono sul server ma bensì sul client si deve aggiungere l'opzione "local". Ed infatti così funziona!
Ma io mi chiedo: perchè? Ho installato il server in locale e quindi dovrebbe vedere le stesse cose che vede il client (cioè la console) visto che sono sulla stessa macchina? Perchè il client (usando l'opzione local) vede l'unità di rete W: e il processo server no?
ho installato MySQL 5.1 in locale come servizio di Windows XP. Sto avendo problemi nell'accedere ad alcuni file tramite la funzione sql "load data". Questa istruzione sql dovrebbe semplicemente leggere dei dati opportunamente formattati da un file testuale e copiarli in una tabella di un database. Ma aldilà del funzionamento, succede che se il file è indicato con un path assoluto sotto C: funziona correttamente.
Se uso un'unità di rete W: creata in modo che punti alla stessa directory che contiene il file da cercare, il file non viene trovato (errore di file not found).
Nel reference manual (http://dev.mysql.com/doc/refman/5.1/en/load-data.html) spiega che l'istruzione "load data" viene eseguita sul processo server e quindi i path sono da riferirsi ad esso. Nel caso si voglia accedere a file che non sono sul server ma bensì sul client si deve aggiungere l'opzione "local". Ed infatti così funziona!
Ma io mi chiedo: perchè? Ho installato il server in locale e quindi dovrebbe vedere le stesse cose che vede il client (cioè la console) visto che sono sulla stessa macchina? Perchè il client (usando l'opzione local) vede l'unità di rete W: e il processo server no?