Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

267
Visualizações
Usar archivo csv para mysql

Intento insertar algunas líneas del archivo csv a la base de datos MySQL "elevage" por línea de comando. El archivo se llama "animal.csv". A continuación se muestra mi solicitud:

 `mysql> LOAD DATA LOCAL INFILE 'F:/MYSQL/animal.csv' -> INTO TABLE Animal -> FIELDS TERMINATED BY ';' ENCLOSED BY '"' -> LINES TERMINATED BY '\r\n' -> (espece, sexe, date_naissance, nom, commentaires);

y me encuentro con este mensaje de error

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

Entonces he usado el siguiente código:

 `SHOW GLOBAL VARIABLES LIKE 'local_infile'`;

y encontré: local_file estaba "APAGADO". Luego traté de configurarlo en "ON" usando el siguiente código:

 `SET GLOBAL local_infile=1;`

Desafortunadamente, me encuentro con otro mensaje de error:

 `ERROR 1227 (42000): Access denied; you need (at least one of) the SUPER or SYSTEM_VARIABLES_ADMIN privilege(s) for this operation`

Aunque, cuando reviso las subvenciones del usuario "estudiante" en el que estoy trabajando:

 mysql> SHOW GRANTS FOR CURRENT_USER();

Yo obtengo:

 +--------------------------------------------------------------+ | Grants for student@localhost | +--------------------------------------------------------------+ | GRANT USAGE ON *.* TO `student`@`localhost` | | GRANT ALL PRIVILEGES ON `elevage`.* TO `student`@`localhost` | +--------------------------------------------------------------+ 2 rows in set (0.00 sec)

lo que significa que "estudiante" tiene todos los privilegios en la base de datos "elevage".

Por favor aconséjame.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

El privilegio SYSTEM_VARIABLES_ADMIN (así como el privilegio SUPER obsoleto) no es un privilegio por base de datos, sino un privilegio por servidor. Y es un privilegio de los administradores, no un privilegio de los usuarios.

¿Por qué necesita tales privilegios para usar LOAD DATA ? Porque ese comando requiere que su usuario escriba archivos directamente en el espacio de archivos de la máquina del servidor de la base de datos. Por lo tanto, el servidor de la base de datos debe confiar completamente en los usuarios de ese comando.

Para usar LOAD DATA LOCAL , necesitará que un administrador del servidor le otorgue esos privilegios, con algo como esto:

 GRANT SUPER, SYSTEM_VARIABLES_ADMIN ON *.* TO 'student'@'localhost';

Si se trata de un servidor compartido, parece poco probable que su administrador le conceda este privilegio. Si es su propio servidor, usted es el administrador y puede usar su cuenta raíz para otorgar el privilegio a su cuenta de estudiante, o usar la cuenta raíz directamente para ejecutar su comando LOAD DATA .

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda