Maison >base de données >tutoriel mysql >Pourquoi MySQL n'offre-t-il pas d'équivalent \'SELECT * INTO OUTFILE LOCAL\' ?
La migration de bases de données peut présenter des défis inattendus, car certaines fonctionnalités peuvent ne plus fonctionner comme prévu. Dans le cas de MySQL, l'instruction SELECT * INTO OUTFILE, autrefois utilisée pour exporter des données vers un fichier texte, ne fonctionne plus pour des raisons de sécurité.
Cependant, l'instruction LOAD DATA INFILE peut être modifiée en LOAD DATA LOCAL INFILE, permettant d'importer des données à partir d'un fichier local. Cela soulève la question : pourquoi n'y a-t-il pas d'équivalent SELECT INTO OUTFILE LOCAL ?
Selon le manuel MySQL, SELECT * INTO OUTFILE est principalement destiné à générer rapidement des fichiers texte sur le serveur. Cependant, la création de fichiers sur des clients distants n'est pas autorisée pour des raisons de sécurité.
Comme alternative, la commande suivante peut être utilisée pour générer des fichiers sur l'hôte client :
mysql -h my.db.com -u username -p password db_name -e'SELECT foo FROM bar' > /tmp/myfile.txt
Concernant MariaDB , il ne semble pas offrir de solution directe à ce problème. Cependant, il fournit des fonctionnalités de sécurité supplémentaires pour le transfert de données, telles que la possibilité de restreindre l'accès aux fichiers à des utilisateurs ou à des adresses IP spécifiques.
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!