মাইএসকিউএল CSV ফাইল ERROR ফাইলটি আমদানি করুন (HY000): /path/file.csv এর স্ট্যাটাসটি পাওয়া যায় না (এরকোড: 2)


16

আমি মাইএসকিউএল (5.5.34) / লিনাক্স (উবুন্টু 12.04 এলটিএস) এর একেবারে শিক্ষানবিস am

আমি একটি টেবিল সহ একটি সাধারণ ডাটাবেস তৈরি করেছি। যখন একটি 'data_test.csv ফাইলের মাধ্যমে ডেটা আমদানি করার চেষ্টা করা হচ্ছে তখন একটি ত্রুটি বার্তা 13 উপস্থিত হবে।

টার্মিনাল থেকে এক্সার্ট অনুসরণ করে:

mysql> source /home/g/stockrecdb/load_test.sql;
Database changed
ERROR 13 (HY000): Can't get stat of '/home/stockrecdb/data_test.csv' (Errcode: 2)
mysql> 

দ্রষ্টব্য: লোড ডেটা লোকাল ইনফাইলে যদি লোকাল ব্যবহার করা হয় তবে একটি ত্রুটি উপস্থিত হয়: ত্রুটি 1148 (42000): এই মাইএসকিউএল সংস্করণটির সাথে ব্যবহৃত আদেশটি অনুমোদিত নয় is

উত্তর:


26

আমি আশা করি আপনি ব্যবহার করছেন LOAD DATA INFILE

LOAD DATA LOCAL INFILEপরিবর্তে ব্যবহার করার চেষ্টা করুন LOAD DATA INFILE

অন্যান্য সমস্যা এটি হতে পারে, দয়া করে নীচের লিঙ্কগুলিতে যান: মাইএসকিউএল লোড ডেটা।

আপনি যখন মাইএসকিউএল এ লগইন করেন নীচের মত,

abdul@xmpp3:~/Desktop/Jiva$ mysql -uroot -p --local-infile
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 257
Server version: 5.5.29-0ubuntu0.12.04.1-log (Ubuntu)

Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use mydb;


mysql> LOAD DATA LOCAL INFILE '/home/abdul/Desktop/STATISTIC_T.csv' INTO TABLE STATISTIC_T  FIELDS TERMINATED BY '|' ENCLOSED BY '"' LINES TERMINATED BY '\n'  IGNORE 1 LINES;

এখন আপনার সিএসভি ব্যবহার করে লোড করুন , সুরক্ষার কারণে আমরা নতুন মাইএসকিউএল ভ্যাসারিশনে লোড LOAD DATA LOCAL INFILEকরার --local-infileআগে আমাদের ব্যবহার করা উচিত CSV


3

যদিও উপরের উত্তরটি ওপি-র সমস্যার সমাধান করেছে, আমি মনে করি যে একই সমস্যাটি কীভাবে সমাধান করেছি সে সম্পর্কে আমার অবদান রাখতে হবে। ত্রুটি 13 ভুল বা অপর্যাপ্ত ফাইল অনুমতিগুলির কারণে ঘটে by আমার ক্ষেত্রে এটি সেলইনক্সে নেমেছিল। আপনি যদি সেলইনাক্স ব্যবহার করছেন তবে মাইএসকিউএল-র জন্য অনুমোদিত ডিরেক্টরিতে আপনার ডেটা ফাইলের পাথ যুক্ত করার ফিক্সটি এই উত্তরটিতে পাওয়া যাবে: /programming//a/3971632/1449160


2

মাইএসকিউএল এর সিএসভি ফাইলের ডিরেক্টরিতে এটি প্রবেশ করতে পারে requires

আপনার ফাইলটিকে "/ home / stockrecdb /" থেকে "/ tmp" এ সরিয়ে ফেললে সমস্যাও সমাধান হতে পারে।


1

আমার এই সঠিক ত্রুটি বার্তাটি Error 13 (HY000)ছিল যা LOCALআব্দুল মানাফ প্রস্তাবিত বিকল্পটি ব্যবহার করে সমাধান করা হয়েছিল । যাইহোক, আমি 101GB আকারের একটি সিএসভি ফাইলের সাথে আটকে গিয়েছি। এই সিএসভি ফাইলটি আমদানির চেষ্টা করার সময়, সিস্টেমটি LOW ডিস্ক স্পেস সতর্কতার প্রতিবেদন করেছে এবং আমদানির কাজ শেষ হচ্ছে না। হতাশাজনকভাবে, ডিস্ক ইউটিলিটি গুই সরঞ্জাম এমনকি df -hকমান্ডটি দেখিয়েছিল যে আমার রুট ডিরেক্টরিতে 85 গিগাবাইটেরও বেশি ডিস্কের জায়গা বাকি রয়েছে।

তারপরে আমি শিখেছি যে LOCALবিকল্পটি সিএসভি ফাইলটিকে মূল / ডিরেক্টরিতে অস্থায়ী স্থানে অনুলিপি করে। তারপরে এটি অস্থায়ী ফাইল থেকে পড়ে। যেহেতু 101 গিগাবাইটের আমার সিএসভি ফাইলটি আমার মূলের ফাঁকা স্থানের চেয়ে বড় ছিল / আমি কম ডিস্কের সতর্কতা দেখছিলাম, তবে, সিস্টেম মনিটর যা আমি পরে সনাক্ত করেছি তা বাদে অনেক জিইআইআই এবং কমান্ড-ভিত্তিক সরঞ্জামগুলিতে এটি সনাক্ত করা যায় নি। যেহেতু আমি 300 গিগাবাইটেরও বেশি মাইএসকিউএল ডাটাবেসে কাজ করছি, তাই আমাকে মাইএসকিউএল ডেটা ডিরেক্টরিটি অন্য একটি অভ্যন্তরীণ ডিস্কে স্থানান্তরিত করতে হয়েছিল এবং আমি একটি বাহ্যিক হার্ড ডিস্ক থেকে সিএসভি আমদানি করছিলাম। অভ্যন্তরীণ ডিস্কে মাইএসকিউএল ডেটা ডিরেক্টরিতে 101 জিবি সিএসভি ফাইলটি অনুলিপি করা আমাকে LOAD DATA INFILEকোনও ত্রুটি বার্তা ছাড়াই কমান্ডটি চালাতে দিন let

সুতরাং LOCALআপনার মূল ডিরেক্টরিটির মুক্ত স্থানের চেয়ে বৃহত্তর সিএসভি ফাইলের বিকল্প সম্পর্কে সচেতন হন । স্থানীয় বিকল্পটি এসএসডির সহনশীলতার জন্য ভাল ধারণাও নয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.