Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

16.7K
Vistas
ERROR 2068 (HY000): Solicitud de archivo LOAD DATA LOCAL INFILE rechazada debido a restricciones de acceso

comenta que lo estoy intentando,

 mysql> LOAD DATA LOCAL INFILE '/var/tmp/countries.csv' INTO TABLE countries FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 LINES (CountryId,CountryCode,CountryDescription,CountryRegion,LastUpdatedDate,created_by,created_on) SET created_by = 'DH_INITIAL_LOAD', created_on = current_timestamp();

ERROR 2068 (HY000): Solicitud de archivo LOAD DATA LOCAL INFILE rechazada debido a restricciones de acceso.

Estaba funcionando bien, descargué pymysql y el conector mysql para el script de python. Lo desinstalé y comprobé que todavía no funciona. La versión y el archivo están activados,

 select version() -| 8.0.17 mysql> SHOW GLOBAL VARIABLES LIKE 'local_infile'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | local_infile | ON | +---------------+-------+ 1 row in set (0.00 sec)
over 4 years ago · Santiago Trujillo
7 Respuestas
Responde la pregunta

0

en ventanas:
para mí después de habilitar local tanto en el cliente como en el servidor y la configuración (en my.ini)

 [client] local_infile=1 [mysqld] secure_file_priv="" the sql command ... load data local infile "FILE" change to load data infile "FILE" works every time ... so much so I do not even use the load local anymore and am not sure of the point of the command ...
over 4 years ago · Santiago Trujillo Denunciar

0

Para usuarios de Mac, si las soluciones anteriores no funcionan (y estoy usando mac OS Big Sur)

Ve a la terminal y escribe

 $ vi ~/.my.cnf

Luego agrega esto al archivo.

 [mysqld] secure_file_priv = ''

Guardar y salir de la ventana. Ahora ve a la terminal y reinicia el servidor mysql usando

 $mysql.server restart

ingrese al servidor mysql usando

 $ mysql -u <your username> -p

Ahora ingrese lo siguiente en mysql

 mysql> SHOW VARIABLES LIKE "secure_file_priv";

Esto debería mostrar el valor de la variable en blanco. Ahora si usas la consulta

 load data local infile '<complete_file_path>' into table <table_name> fields terminated by ',';

¡Esto debería funcionar! también asegúrese de haber configurado la siguiente variable en "ON" usando:

 set global local_infile = 1;

Actualizar

Para usuarios de Windows: tener mysql 8.0 instalado a continuación es la variable de archivo seguro mencionada anteriormente

 secure-file-priv="C:/ProgramData/MySQL/MySQL Server 8.0/Uploads"
over 4 years ago · Santiago Trujillo Denunciar

0

Para corregir este error (mysql 8):

ERROR 2068 (HY000): Solicitud de archivo LOAD DATA LOCAL INFILE rechazada por restricciones de acceso.

agregue la siguiente línea en el archivo de configuración de su servidor, en la sección "cliente":

 [client] loose-local-infile=1

Eso solucionará el error. Sin embargo, esto supone que ya ha configurado lo siguiente en la sección "mysqld":

 [mysqld] local_infile=1

Tener ambos parámetros configurados en su archivo de configuración le permitirá cargar datos desde cualquier directorio.

Aquí hay un ejemplo simple de uso. Ejecutar en la terminal mysql:

 load data local infile '/path/to/file/data.tsv' into table my_table_name fields terminated by '\t' LINES TERMINATED BY '\n' ( `col1`, `col2`, `col3`, `col4` );
over 4 years ago · Santiago Trujillo Denunciar

0

Para ubuntu:

  1. edite el archivo /etc/mysql/mysql.conf.d/mysqld.cnf y agregue la siguiente línea al final:

    # archivo_seguro_priv=""

  2. reiniciar el servicio

     systemctl stop mysql systemctl start mysql
  3. ejecute: mysql -u root -p y verifique la variable de archivo local

     mysql> show global variables like 'local_infile'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | local_infile | OFF | +---------------+-------+ 1 row in set (0.00 sec)
  4.  mysql> set global local_infile=true; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | local_infile | ON | +---------------+-------+ 1 row in set (0.00 sec)
  5.  mysql> exit Bye
  1. correr

     mysql --local-infile=1 -u root -p
  2.  LOAD DATA INFILE '/var/lib/mysql-files/filename' INTO TABLE tablename;
over 4 years ago · Santiago Trujillo Denunciar

0

El uso de MySql Workbench 8 o superior presentó este problema. Esto me lo arregló:

Esta restricción se puede eliminar de MySQL Workbench 8.0 de la siguiente manera. Edite la conexión, en la pestaña Conexión, vaya a la subpestaña 'Avanzado' y en el cuadro 'Otros:' agregue la línea 'OPT_LOCAL_INFILE=1'.

Esto debería permitir que un cliente que usa Workbench ejecute LOAD DATA INFILE como de costumbre.

Citado de este enlace: https://bugs.mysql.com/bug.php?id=91872

over 4 years ago · Santiago Trujillo Denunciar

0

Problema conocido: https://bugs.mysql.com/bug.php?id=91872

para una solución al intentar conectarse a mysql en sí mismo, establezca local-infile en 1 y ejecute el comando de carga: mysql --local-infile=1 -h$MASTER_DB_HOST -u$MASTER_DB_USER -p$MASTER_DB_PASSWD -D$MASTER_DB_NAME

over 4 years ago · Santiago Trujillo Denunciar

0

El hecho de que local_infile esté en ON en el servidor no siempre es suficiente. Desde MySQL 8.0, el cliente también debe permitir explícitamente LOCAL INFILE; de lo contrario, obtendrás el error 2068.

Si estás usando el cliente mysql, prueba conectarte así:

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

Y verifica:

SHOW SESSION VARIABLES LIKE 'local_infile';

Si el problema comenzó después de instalar o actualizar conectores (como PyMySQL o MySQL Connector), es posible que el cliente esté deshabilitando LOCAL INFILE por motivos de seguridad. En ese caso, debes habilitarlo en la configuración de la conexión, por ejemplo:

mysql.connector.connect(
    ...,
    allow_local_infile=True
)

o el equivalente para el conector que estés usando.

En resumen: el servidor ya tiene local_infile=ON, pero probablemente el cliente o conector que ejecuta la consulta no tiene habilitado LOCAL INFILE.

3 months ago · Ruben Alexander Serrano Porras Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda