ত্রুটি: স্থানীয় ডেটা লোড করা অক্ষম - এটি অবশ্যই ক্লায়েন্ট এবং সার্ভার উভয় পক্ষেই সক্ষম করা উচিত


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)

এর অর্থ হ'ল সঠিক কোড সরবরাহ করা হয়েছিল। যদি আমি "ক্লায়েন্ট" সাইড এবং "সার্ভার" পাশের স্থানীয় ডেটা সক্ষম করতে আমার কী করা দরকার, ধাপে ধাপে কেউ আমাকে যেতে পারে তবে আমি তার প্রশংসা করব। দেখে মনে হচ্ছে আমি ক্লায়েন্ট পক্ষের স্থানীয় ডেটা সক্ষম করেছি, তবে "সার্ভার সাইড" সক্ষম করার জন্য কম্পিউটারকে আমার কী নির্দেশাবলীর দরকার তা আমি জানি না। আমি মোটেই টেক সচেতন নই, এবং আমি কেবল মাইএসকিউএল ওয়ার্কবেঞ্চে ডেটা আপলোড করা হয়েছে এমন পয়েন্টে পৌঁছতে সক্ষম হতে চাই।

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

আমি কেবল কমান্ড লাইন শেলটি ব্যবহার করে মাইএসকিউএলে একটি .csv ফাইল আমদানি করতে সক্ষম হতে চাই।


উত্তর:


7

যদি স্থানীয় দক্ষতা অক্ষম করা থাকে তবে সার্ভার বা ক্লায়েন্টের উভয় পক্ষেই, একটি ক্লায়েন্ট যা লোড ডেটা স্থানীয় বিবৃতি জারি করতে চেষ্টা করে নিম্নলিখিত ত্রুটি বার্তাটি গ্রহণ করে:

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

আমি যখন মাইকিউএলএর টিউটোরিয়াল অনুসরণ করে পোষা টেবিলটিতে পোষা ফাইল pet.txt ফাইলটি লোড করতে চাইছি তখন আমি একই সমস্যাটি পেয়েছিলাম: 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 ডেটা বিবৃতিগুলির জন্য সার্ভার-সাইড LOCAL সামর্থ্য নিয়ন্ত্রণ করে। লোকাল_ইনফাইলে সেটিংসের উপর নির্ভর করে, সার্ভার ক্লায়েন্টদের কাছে স্থানীয় ডেটা লোড করতে অস্বীকার করেছে বা অনুমতি দেয় যা ক্লায়েন্টের পাশে LOCAL সক্ষম করেছে। স্পষ্টভাবে লোড ডেটা স্থানীয় বিবৃতিগুলি অস্বীকার বা অনুমতি দেওয়ার জন্য (ক্লায়েন্ট প্রোগ্রাম এবং লাইব্রেরিগুলি বিল্ড টাইম বা রানটাইম সময়ে কনফিগার করা নির্বিশেষে), যথাক্রমে স্থানীয়_ইনফাইল অক্ষম বা সক্ষম হয়ে মাইএসকিএলডি শুরু করুন। লোকাল_ইনফাইল রানটাইমে সেট করা যায়।

  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-configration-options .html # অপশন_ম্যাক_এনবলড_লোকাল_ইনফিল https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_local_infile


এটি আমার জন্য কাজ করে :-)
ব্রায়ন নিকসন

2

my.cnf ফাইল:

[client]  
local_infile=1

অফিসিয়াল মাইএসকিউএল 8.0 ডকুমেন্টেশন থেকে


মাইএসকিউএল ডকুমেন্টগুলি খুব পরিষ্কার নয়। আপনি [ক্লায়েন্ট] সেট করেছেন, কীভাবে সার্ভারের পাশ এবং ক্লায়েন্টের পক্ষগুলি উভয়ই ঠিক সামনে আসতে পারে? মাইএসকিউএল 8 সহ উবুন্টুতে, মাই সিএনএফ ফাইলটি কেবল /etc/mysql/mysql.conf.d এবং /etc/mysql/conf.d উল্লেখ করে একটি ডিরেক্টরি of আমি mysql.conf.d / mysql.cnf ফাইলে সেটিংস চেষ্টা করছি। তবে, সত্যি বলতে কী, শীর্ষ স্তরে এবং প্রতিটি উপ ডিরেক্টরিতে একই নামযুক্ত "mysql.cnf" ফাইলগুলির সাথে একটি একক ফোল্ডার রাখার বিষয়টি কীভাবে বোধ করতে পারে? এবং সার্ভারের জন্য কোনও পরিবর্তন নেই?
পলজোহন 32

1
যে কোনও কনফিগার ফাইলে ট্যাগ [মাইকিকিএলডি] রয়েছে এবং এটি ব্যবহৃত হচ্ছে তা সন্ধান করুন। সেই ট্যাগের পাশাপাশি [ক্লায়েন্ট] ট্যাগের অধীনে একই গ্লোবাল কনফিগারেশন যুক্ত করুন।
অ্যাডাম ফ্রেডম্যান

@ অ্যাডামফ্রিডম্যান বিন্দুটির জন্য ধন্যবাদ! আমার জন্য সার্ভার কনফিগারেশন ফাইল ছিল /etc/mysql/mysql.conf.d/mysqld.cnfএবং আমি [mysqld] এর অধীনে লোকাল_ইনফাইল = 1 যুক্ত করেছি এবং এটি এখন কাজ করছে! আমি বর্তমানে এই উত্তরটি সম্পাদনা করতে পারছি না কারণ সম্পাদনা সারি পূর্ণ, তবে এটি মাইএসকিএলড জুটি ব্যতীত অসম্পূর্ণ।
অ্যাডারচক্স
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.