Maison  >  Article  >  base de données  >  Pourquoi \"SELECT * INTO OUTFILE LOCAL\" manque-t-il dans MySQL et comment puis-je obtenir le même résultat ?

Pourquoi \"SELECT * INTO OUTFILE LOCAL\" manque-t-il dans MySQL et comment puis-je obtenir le même résultat ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-26 08:00:03642parcourir

Why is

MySQL - SELECT * INTO OUTFILE LOCAL ?

Lors d'une récente migration de serveur, une base de données a été déplacée vers un autre serveur, provoquant la précédente la commande "SELECT * INTO OUTFILE ..." échoue. Alors que "LOAD DATA INFILE..." restait fonctionnel, l'absence d'une option correspondante "SELECT INTO OUTFILE LOCAL" a rendu l'utilisateur perplexe.

Explication de l'absence de "SELECT INTO OUTFILE LOCAL"

Contrairement à "LOAD DATA INFILE" qui lit à partir d'un fichier local sur le serveur, "SELECT INTO OUTFILE" est destiné à générer un fichier texte sur le serveur lui-même. Pour des raisons de sécurité, la possibilité de créer des fichiers sur des clients externes est restreinte, d'où l'impossibilité de "SELECT INTO OUTFILE LOCAL" de fonctionner.

Solution Alternative

La Le manuel recommande d'utiliser MySQL en combinaison avec une redirection pour générer le fichier sur l'hôte client, comme le montre l'exemple ci-dessous :

mysql -h my.db.com -u usrname--password=pass db_name -e 'SELECT foo FROM bar' > /tmp/myfile.txt

Capacité de MariaDB

Pendant que l'article ne mentionne pas explicitement MariaDB, le problème concerne le comportement de MySQL et n'affecte pas directement les fonctionnalités de MariaDB.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn