El comando LOAD DATA puede cargar un fichero
        que esté localizado en el equipo servidor, o puede cargar un
        fichero localizado en el equipo cliente cuando se especifica la
        palabra clave LOCAL.
      
        Hay dos aspectos de seguridad potenciales al soportar la
        versión LOCAL de los comandos LOAD
        DATA:
      
            La transferencia del fichero desde el equipo cliente al
            equipo servidor se inicia mediante el servidor MySQL. En
            teoría, puede construirse un servidor modificado de forma
            que le diga al programa cliente que transfiera un fichero
            elegido por el servidor en lugar de el fichero especificado
            por el cliente en el comando LOAD DATA .
            Tal servidor podría acceder a cualquier fichero en el
            equipo cliente al que el usuario cliente tuviese acceso de
            lectura.
          
            En un entorno Web en el que los clientes se conecten
            mediante un servidor Web, un usuario podría usar
            LOAD DATA LOCAL para leer cualquier
            fichero al que el servidor Web tuviese acceso de lectura
            (asumiendo que el usuario puediese ejecutar cualquier
            comando contra el servidor SQL). En este entorno, el cliente
            respecto al servidor MySQL es el servidor Web, no el
            programa ejectuado por el usuario para conectar al servidor
            Web.
          
        Para tratar estos problemas, hemos cambiado el funcionamiento de
        LOAD DATA LOCAL en MySQL 3.23.49 y MySQL
        4.0.2 (4.0.13 en Windows):
      
            Por defecto, todos los clientes MySQL y bibliotecas en
            distribuciones binarias se compilan con la opción
            --enable-local-infile para ser compatible
            con la versión MySQL 3.23.48 y anteriores.
          
            Si compila MySQL de los ficheros fuentes pero no usa la
            opción --enable-local-infile para
            configure, LOAD DATA
            LOCAL no puede usarse por ningún cliente a no ser
            que se escriba explícitamente para invocar
            mysql_options(... MYSQL_OPT_LOCAL_INFILE,
            0). Consulte Sección 24.2.3.44, “mysql_options()”.
          
            Puede desactivar todos los comandos LOAD DATA
            LOCAL desde el lado del servidor arrancando
            mysqld con la opción
            --local-infile=0.
          
            Para el cliente de línea de comando
            mysql, LOAD DATA LOCAL
            puede activarse especificando la opción
            --local-infile[=1] , o deshabilitarse con
            la opción --local-infile=0 . De forma
            similar, para mysqlimport, las opciones
            --local o -L permite
            la carga de datos locales. En cualquier caso, el uso exitoso
            de una operación de carga local requiere que el servidor lo
            permita.
          
            Si usa LOAD DATA LOCAL en scripts de Perl
            scripts u otros programsa que lean del grupo
            [client] en los ficheros de opciones,
            puede añadir la opción local-infile=1 a
            ese grupo. De todos modos, para evitar que esto cause
            problemas en programas que no entiendan
            local-infile, especifíquelo usando el
            prefijo loose- :
          
[client] loose-local-infile=1
            Si LOAD DATA LOCAL INFILE está
            desactivado, tanto en el servidor o el cliente, un cliente
            que trate de ejecutar dicho comando recibe el siguiente
            mensaje de error:
          
ERROR 1148: The used command is not allowed with this MySQL version
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.

