त्रुटि: लोड हो रहा है स्थानीय डेटा अक्षम है - यह क्लाइंट और सर्वर दोनों पक्षों पर सक्षम होना चाहिए


11

मैं उन प्रतिक्रियाओं को नहीं समझता, जो दूसरों ने सबसे स्पष्ट लोगों को छोड़कर इसी तरह के प्रश्नों को प्रदान की हैं, जैसे नीचे दी गई:

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)

इसके द्वारा मेरा मतलब सटीक कोड प्रदान किया गया था। मैं बहुत सराहना करता हूं कि अगर कोई मेरे माध्यम से चल सकता है, तो मुझे "क्लाइंट" पक्ष और "सर्वर" साइड पर स्थानीय डेटा को सक्षम करने के लिए क्या करना होगा। ऐसा लगता है कि मैंने ग्राहक पक्ष में स्थानीय डेटा सक्षम कर दिया है, लेकिन मुझे नहीं पता कि "सर्वर साइड" को सक्षम करने के लिए मुझे अपने कंप्यूटर को क्या निर्देश देने की आवश्यकता है। मैं तकनीकी जानकार बिल्कुल नहीं हूं, और मैं केवल उस बिंदु पर पहुंचना चाहता हूं जहां डेटा को MySQL कार्यक्षेत्र में अपलोड किया गया है।

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)
;

मैं बस कमांड लाइन शेल का उपयोग करके MySQL में एक .csv फ़ाइल आयात करने में सक्षम होना चाहता हूं।


क्या इससे आपके सवाल का जवाब मिलता है? MySQL: LOAD DATA LOCAL INFILE रीसेट को सक्षम करें
danblack

जवाबों:


7

यदि LOCAL क्षमता अक्षम है, तो सर्वर या क्लाइंट साइड पर, क्लाइंट जो LOAD DATA LOCAL स्टेटमेंट जारी करने का प्रयास करता है, उसे निम्न त्रुटि संदेश प्राप्त होता है:

ERROR 3950 (42000): Loading local data is disabled; this must be
enabled on both the client and server side

जब मैं मैसुकल के ट्यूटोरियल के बाद पालतू टेबल में टेक्स्ट फाइल पेटीएम लोड करना चाहता हूं तो मैं उसी मुद्दे से मिला था: https://dev.mysql.com/doc/refman/8.0/en/loading-tables.html

ऑनलाइन खोज करने के बाद, मैंने इसे इन चरणों द्वारा ठीक किया:

  1. इस आदेश का उपयोग करके वैश्विक चर सेट करें:
mysql> SET GLOBAL local_infile=1;
Query OK, 0 rows affected (0.00 sec)
  1. वर्तमान सर्वर छोड़ें:
mysql> quit
Bye
  1. स्थानीय-इनफ़ाइल सिस्टम चर के साथ सर्वर से कनेक्ट करें:
mysql --local-infile=1 -u root -p1

यह चर LOAD DATA कथनों के लिए सर्वर-साइड LOCAL क्षमता को नियंत्रित करता है। स्थानीय_इनफाइल सेटिंग के आधार पर, सर्वर मना कर देता है या क्लाइंट द्वारा स्थानीय डेटा लोड करने की अनुमति देता है, जो क्लाइंट साइड पर सक्षम है। स्पष्ट रूप से सर्वर को अस्वीकार करने या LOAD DATA LOCAL कथनों की अनुमति देने के लिए (चाहे क्लाइंट प्रोग्राम और लाइब्रेरी बिल्ड टाइम या रनटाइम पर कॉन्फ़िगर किए गए हों), क्रमशः mysqld को local_infile अक्षम या सक्षम के साथ शुरू करें। local_infile को रनटाइम पर भी सेट किया जा सकता है।

  1. अपने डेटाबेस का उपयोग करें और फ़ाइल को तालिका में लोड करें:
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)

क्या यह काम करता है?

संदर्भ:

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-ionions .html # option_cmake_enabled_local_infile https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_local_infile


यह मेरे लिए काम करता है :-)
ब्रायन निकोसन

2

my.cnf फ़ाइल:

[client]  
local_infile=1

आधिकारिक MySQL 8.0 प्रलेखन से


MySql दस्तावेज़ बहुत स्पष्ट नहीं हैं। आप [क्लाइंट] सेट करते हैं, सर्वर साइड और क्लाइंट साइड्स दोनों को सही बनाने के लिए कैसे? MySql 8 के साथ उबंटू पर, my.cnf फ़ाइल /etc/mysql/mysql.conf.d और /etc/mysql/conf.d का संदर्भ देने वाली निर्देशिकाओं की एक जोड़ी है। मैं mysql.conf.d / mysql.cnf फ़ाइल में सेटिंग की कोशिश कर रहा हूँ। लेकिन, ईमानदारी से, शीर्ष स्तर में समान "mysql.cnf" फाइलों के साथ और प्रत्येक उप निर्देशिका में एकल फ़ोल्डर के लिए यह कैसे समझ में आता है। और सर्वर के लिए कोई बदलाव नहीं?
pauljohn32

1
जो भी कॉन्फ़िगर करें फ़ाइल को टैग करें [mysqld] और इसका उपयोग किया जा रहा है। उस टैग के तहत और साथ ही साथ [क्लाइंट] टैग के तहत एक ही वैश्विक कॉन्फ़िगरेशन जोड़ें।
एडम फ्राइडमैन

@AdamFriedman बिंदु के लिए धन्यवाद! मेरे लिए सर्वर कॉन्फ़िगरेशन फ़ाइल में था/etc/mysql/mysql.conf.d/mysqld.cnf और मैंने [mysqld] के तहत local_infile = 1 को जोड़ा और यह अब काम कर रहा है! मैं वर्तमान में इस उत्तर को संपादित नहीं कर सकता क्योंकि संपादित कतार भरी हुई है, लेकिन यह mysqld जोड़ी के बिना अधूरी है।
एड्रॉक्सॉक्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.