Si la fonctionnalité LOCAL est désactivée, côté serveur ou côté client, un client qui tente d'émettre une instruction LOAD DATA LOCAL reçoit le message d'erreur suivant :
ERROR 3950 (42000): Loading local data is disabled; this must be
enabled on both the client and server side
J'ai rencontré le même problème lorsque je veux charger le fichier texte pet.txt dans la table pet suite à un tuto de Mysql :https://dev.mysql.com/doc/refman/8.0/en/loading-tables.html
Après une recherche en ligne, j'ai résolu le problème en suivant ces étapes :
- définissez les variables globales à l'aide de cette commande :
mysql> SET GLOBAL local_infile=1;
Query OK, 0 rows affected (0.00 sec)
- quitter le serveur actuel :
mysql> quit
Bye
- connectez-vous au serveur avec la variable système local-infile :
mysql --local-infile=1 -u root -p1
Cette variable contrôle la capacité LOCAL côté serveur pour les instructions LOAD DATA. Selon le paramètre local_infile, le serveur refuse ou autorise le chargement de données locales par les clients pour lesquels LOCAL est activé côté client. time ou runtime), démarrez mysqld avec local_infile désactivé ou activé, respectivement. local_infile peut également être défini lors de l'exécution.
- utilisez votre base de données et chargez le fichier dans la table :
mysql> use menagerie
Database changed
mysql> load data local infile '/path/pet.txt' into table pet;
Query OK, 8 rows affected, 7 warnings (0.00 sec)
Est-ce que ça marche ?
Références :
https://dev.mysql.com /doc/refman/8.0/en/load-data-local-security.html https://dev.mysql.com /doc/refman/8.0/en/source-configuration-options.html#option_cmake_enabled_local_infile https://dev.mysql.com /doc/refman/8.0/en/server-system-variables.html#sysvar_local_infile