Je ne comprends pas les réponses que d'autres ont fournies à des questions similaires, à l'exception des plus évidentes, comme celle ci-dessous:
mysql> SET GLOBAL local_infile=1;
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW GLOBAL VARIABLES LIKE 'local_infile';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| local_infile | ON |
+---------------+-------+
1 row in set (0.01 sec)
Je veux dire par là que le code exact a été fourni. J'apprécierais grandement si quelqu'un pouvait me guider, étape par étape, ce que je dois faire pour activer les données locales du côté "client" et du côté "serveur". Il semble que j'aie activé les données locales côté client, mais je ne sais pas quelles instructions je dois donner à mon ordinateur pour activer le "côté serveur". Je ne suis pas du tout technophile, et je veux juste pouvoir arriver au point où les données ont été téléchargées dans MySQL Workbench.
ERROR 3948 (42000): Loading local data is disabled; this must be enabled on both the client and server sides
CREATE TABLE toys (
uniq_id VARCHAR(1000),
product_name VARCHAR(1000),
manufacturer VARCHAR(1000),
price VARCHAR(1000),
number_available_in_stock VARCHAR (1000),
number_of_reviews INT,
number_of_answered_questions INT,
average_review_rating VARCHAR(1000),
amazon_category_and_sub_category VARCHAR(1000),
customers_who_bought_this_item_also_bought VARCHAR(1000),
description VARCHAR(1000),
product_information VARCHAR(1000),
product_description VARCHAR(1000),
items_customers_buy_after_viewing_this_item VARCHAR(1000),
customer_questions_and_answers VARCHAR(1000),
customer_reviews VARCHAR(1000),
sellers VARCHAR(1000)
);
LOAD DATA LOCAL INFILE ‘/Users/BruddaDave/Desktop/amazonsample.csv’ INTO TABLE toys
FIELDS TERMINATED BY ‘,’
LINES TERMINATED BY ‘\n’
IGNORE 1 LINES
(uniq_id, product_name, manufacturer, price, number_available_in_stock, number_of_reviews, number_of_answered_questions, average_review_rating, amazon_category_and_sub_category, customers_who_bought_this_item_also_bought, description, product_information, product_description, items_customers_buy_after_viewing_this_item, customer_questions_and_answers, customer_reviews, sellers)
;
Je veux juste pouvoir importer un fichier .csv dans MySQL en utilisant le shell de ligne de commande.
Réponses:
Si la capacité 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:
J'ai rencontré le même problème lorsque je veux charger le fichier texte pet.txt dans la table pet suite à un tutoriel de Mysql: https://dev.mysql.com/doc/refman/8.0/en/loading-tables.html
Après avoir recherché en ligne, je l'ai corrigé par ces étapes:
Cette variable contrôle la capacité LOCAL côté serveur pour les instructions LOAD DATA. En fonction du paramètre local_infile, le serveur refuse ou autorise le chargement de données locales par les clients dont LOCAL est activé côté client. Pour obliger explicitement le serveur à refuser ou à autoriser les instructions LOAD DATA LOCAL (quelle que soit la configuration des programmes clients et des bibliothèques au moment de la construction ou de l'exécution), démarrez mysqld avec local_infile désactivé ou activé, respectivement. local_infile peut également être défini lors de l'exécution.
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
la source
my.cnf
fichier:De la documentation officielle MySQL 8.0 .
la source
/etc/mysql/mysql.conf.d/mysqld.cnf
et j'ai ajouté le local_infile = 1 sous [mysqld] et ça fonctionne maintenant! Je ne peux pas actuellement modifier cette réponse car la file d'attente d'édition est pleine, mais elle est incomplète sans la paire mysqld.