ডেটাবেস ড্রপিংয়ে ত্রুটি (rmdir '.টেস্ট \', ত্রুটি: 17)


124

মূলত, "মাইসক্ল্যাডমিন-রুট-পি পাসওয়ার্ড" কমান্ডটি ব্যবহার করে কীভাবে একটি রুট পাসওয়ার্ড তৈরি করতে হয় তা শেখানো হয়েছিল, এটি উইন্ডোজ কমান্ড সম্পাদকের মাধ্যমে করা হয়েছিল। এখন, পরবর্তী প্রক্রিয়াটি ছিল ডিফল্ট ডাটাবেসগুলি (তথ্য। স্কিমা, মাইএসকিএল এবং পরীক্ষা) প্রদর্শন করা যা "দেখান ডেটাবেস" ব্যবহার করে অর্জন করা হয়েছিল;

তবে বই অনুসারে, আমাদেরকে রিডানড্যান্ট পরীক্ষা ফাইলটি মুছতে হয়েছিল এবং নীচের ত্রুটিটি পপ আপ হয়েছে:

ডেটাবেস ড্রপিংয়ে ত্রুটি (rmdir '.টেস্ট \', ত্রুটি: 17)

যে কমান্ডটি ব্যবহার করা হয়েছিল তা ছিল DROP DATABASE test;

আমি MYSQL এবং PHPMYADMIN ব্যবহার করছি AD কোনও ত্রুটি ছাড়াই ফাইলটি কীভাবে বাদ দেওয়া যায় তার কোনও সহায়তা?


মাইএসকিউএল ব্যবহারকারীের অবশ্যই সম্পর্কিত ডেটা ডিরেক্টরিটির মালিকানা রয়েছে?
জন পার্কার

হালনাগাদ. আমি পিএইচপিএমওয়াইডমিন থেকে একটি নতুন ডাটাবেস তৈরি করেছি এবং কমান্ড সম্পাদকটিতে কমান্ডটি ব্যবহার করেছি, এবার ত্রুটিটি পপিং না করে এটি কাজ করে। সম্পাদনা: মিদ্দাপারকা, আমি এখনও সত্যিই সেই অংশটি স্পর্শ করতে পারি নি। আমি জানি না, ডিফল্টভাবে, অনুমতি কী দেওয়া হয়।
সিড

আমি অনুমান করি যে নতুন মাইএসকিউএল সংস্করণগুলি সত্যই আপনার মাইএসকিএল ডিরেক্টরি /
বিনের

উত্তর:


163

একটি ডাটাবেস ডেটা ডিরেক্টরি (সাধারণত /var/lib/mysql) এর অধীনে একটি ডিরেক্টরি দ্বারা প্রতিনিধিত্ব করা হয় , এবং ডিরেক্টরিটি টেবিলের ডেটা সঞ্চয় করার জন্য।

DROP DATABASEবিবৃতি সব টেবিল ফাইল মুছে ফেলুন হবে এবং তারপর যে ডিরেক্টরি ডাটাবেসের প্রতিনিধিত্ব মুছে ফেলুন। এটি অবশ্য টেবিলবিহীন ফাইলগুলি সরিয়ে ফেলবে না, যার ফলে ডিরেক্টরিটি সরানো সম্ভব হয় না।

মাইএসকিউএল একটি ত্রুটি বার্তা প্রদর্শন করে যখন এটি ডিরেক্টরিটি সরাতে পারে না

আপনি ডাটাবেস ডিরেক্টরিতে থাকা কোনও ফাইল এবং তারপরে ডিরেক্টরিটি নিজেই মুছে ফেলে ম্যানুয়ালি ডাটাবেসটি ড্রপ করতে পারেন।


1
ধন্যবাদ, শক্তি সিং আমি পিএইচপিএমওয়াইডমিন পরিদর্শন করে 'পরীক্ষার' টেবিলটি বাদ দিয়েছি, তবে আমি কমান্ড সম্পাদকের মাধ্যমে সত্যিই এটি করতে চেয়েছিলাম। আমার ধারণা আমি একই ফাইলটি বারবার মুছে ফেলার চেষ্টা করেছি, তাই ত্রুটি। আমি একটি নতুন ডিবি তৈরি করেছি এবং ড্রপ ডেটাবেস কমান্ড প্রবেশ করলাম, এটি কার্যকর!
সিড

2
নোট আপনি কি সত্যিই শুধুমাত্র ডিরেক্টরি নিজেকে অপসারণ করতে পারেন যে যদি ডাটাবেসের শুধুমাত্র MyISAM টেবিল আছে
আমরা

আমার ক্ষেত্রে আমি ছিল logoutএবং তারপর loginআবার, ডাটাবেজ সর্বস্বান্ত দেখতে।
আনাস আজিম

5
ফাইলগুলি ঠিক কোথায়?
কালো

আমি ডাটাবেস ডিরেক্টরিতে ফাইল তৈরি করেছি। এই সমস্যাগুলি সরানোর পরে আমার সমস্যা সমাধান হয়েছে।
জাহিদ

37

আমি ম্যাকের উপর মাইএসকিএল 5.5-র একটি নতুন ইনস্টল করে এই একই সমস্যাটিতে চলেছি। আমি পরীক্ষার স্কিমাটি ফেলে দেওয়ার চেষ্টা করেছি এবং এর্নো 17 বার্তা পেয়েছি। এর্নো 17 হ'ল ত্রুটিটি কিছু পিক্সিক ওএস ফাংশন দ্বারা ফিরে আসে যা বোঝায় যে কোনও ফাইল যেখানে থাকা উচিত নয় exists ডেটা ডিরেক্টরিতে আমি একটি অদ্ভুত ফাইল ".empty" পেয়েছি:

sh-3.2# ls -la data/test
total 0
drwxr-xr-x   3 _mysql  wheel  102 Apr 15 12:36 .
drwxr-xr-x  11 _mysql  wheel  374 Apr 15 12:28 ..
-rw-r--r--   1 _mysql  wheel    0 Mar 31 10:19 .empty

আমি একবার .empty ফাইলটি rm'd করলে ড্রপ ডাটাবেস কমান্ডটি সফল হয়েছিল।

.Empty ফাইলটি কোথা থেকে এসেছে তা আমি জানি না; হিসাবে উল্লিখিত, এটি একটি নতুন mysql ইনস্টল। সম্ভবত ইনস্টল প্রক্রিয়াতে কিছু ভুল হয়েছে।


3
দেখুন মাইএসকিউএল বাগ # 62443 । এটি একটি মাইএসকিউএল বাগ 5.৫.১১-এর কাছাকাছি প্রবর্তিত কারণ চটকদার সীমাবদ্ধতার কারণে। যেমনটি আপনি বলেছিলেন, ডেটা remove পরীক্ষা \ .empty
জন জন ম্যাকার্থি

2
আমার জন্য উইন্ডোতে এটি ছিল: সি: amp ওয়্যাম্প \ বিন \ মাইএসকিএল \ mysql5.5.24 \ ডেটা \ পরীক্ষা \
মাথে এন্ড্রে-বোটন্ড

34

আপনার মাইএসকিএল ইনস্টলেশনের জন্য ডেটাডিরটিতে যান এবং ম্যানুয়ালি ডাটাবেসগুলি আরএম করুন। এটা হতে পারে

/usr/local/var/mysql

তারপর,

rm -R <Your DB name>

আপনার ইনস্টলেশন জন্য ডেটাডির পরীক্ষা করতে,

vim the mysql.server file and find it there.

7
আমি মাইএসকিএল 5.5.34-0ubuntu0.13.04.1 দিয়ে লিনাক্স পুদিনা চালাচ্ছি এবং তারা এটিকে / var / lib / mysql এর অধীনে সঞ্চয় করে। আমি নিশ্চিত এটি বিভিন্ন ডিস্ট্রোসের জন্য আলাদা।
ক্রেগ শ্মিট

1
ডিরেক্টরিটি কোথায় ছিল আমাকে জানানোর জন্য আপনাকে ধন্যবাদ !!
সঙ্কল্প সিংহ

আমার জন্য :) কাজ করে
পুতলি

আমার জন্য কাজ করেছে আরএম-আর ডাটাবেস ব্যবহার করে phpmyadmin পুনরায় লোড করুন
বিকাশ কান্ডারী

23

জন্য phpMyAdmin , এখানে যান \ মাইএসকিউএল \ তথ্য XAMPP কেবল ডাটাবেসের ফোল্ডারের মুছে দিন। আমার জন্য কাজ করেছেন !!


12

যদি এটি এক্সএএমপিপি হয় তবে নিম্নলিখিতগুলি করুন:

cd /opt/lampp/var/mysql;
sudo su;
rm -rf test;

আশাকরি এটা সাহায্য করবে.


+1 এটি ম্যাকের উপর ভাল কাজ করে যদি আপনি এটিতে একটি মাউন্টেড এক্সএএমপিপি ব্যবহার করেন। অ্যাপ্লিকেশন (মাউন্ট xampp অ্যাপ্লিকেশন) মাধ্যমে টার্মিনালটি খুলুন এবং উপরের গাইডটি অনুসরণ করুন follow
ববি অক্স

এটি আমাকে আবার সাহায্য করেছে :)
ববি এক্স

8

আমি কেবল ডাব্লুএএমএপি এবং এটির সাথে আসা পিএইচপিএমআইএডমিনের সাথে এই সমস্যায় পড়েছি। ডাটাবেসটি সরাতে এবং ত্রুটিটি দূরে সরাতে। আমি .ুকে গেলামC:\wamp\bin\mysql\mysql5.5.24\data\ করে প্রশ্নবিদ্ধ ডাটাবেসের ফোল্ডারটি মুছে ফেলেছি।

তারপরে আমি phpMyAdmin এ পৃষ্ঠাটি রিফ্রেশ করেছিলাম এবং ডাটাবেসটি চলে যায়।


4

কেবলমাত্র এখন পর্যন্ত প্রতিক্রিয়াগুলিতে যুক্ত করতে: উইন্ডোজ 10 এ, ডেটা ফাইলগুলি এখানে রাখা হয় ...

সি: \ প্রোগ্রামডেটা \ মাইএসকিউএল \ মাইএসকিউএল সার্ভার [এমএন] \ ডেটা

আপনার ডাটাবেসে প্রতিটি স্কিমা জন্য ডিরেক্টরি থাকবে। আপনি যে স্কিমাটি ড্রপ করার চেষ্টা করছেন তার ভিতরে যেতে চাইবেন, যেকোন অতিরিক্ত অতিরিক্ত ফাইলগুলি নিজে নিজে মুছুন তারপরে আবার ড্রপ কমান্ডটি চেষ্টা করুন।

কোনও ডাটাবেসের বিপরীতে যে কোনও ওয়ার্কবঞ্চ পরিবর্তন এই স্থানে সংরক্ষণ করা হবে। উদাহরণস্বরূপ, আমার একটি ডাটাবেসে বিপরীত প্রকৌশল অনুশীলন এবং এই অবস্থানে একটি এমএমডাব্লু ফাইলে সংরক্ষণ করা পরিবর্তনগুলি সংরক্ষণ করার পরে আমার এই ত্রুটি হয়েছিল।


1

আপনি এসকিএল ডিরেক্টরিতে ডেটা মুছতে পারেন।

আমার জন্য আমি উইন্ডোজ ১০ এ এএমপিপিএস ব্যবহার করছিলাম I আমি এএমপিপিএস ইনস্টলশন ডিরেক্টরিতে গিয়েছিলাম। আমার জন্য এটি ছিল:

D:\Program Files (x86)\Ampps\mysql\data

কারণ আমি এটি আমার দ্বিতীয় ড্রাইভে ইনস্টল করেছি installed

তারপরে আপনার এসকিউএল ক্লায়েন্টকে রিফ্রেশ করুন এবং আপনি দেখতে পাবেন এটি শেষ হয়ে গেছে।


1

আপনার দুটি জিনিস পরীক্ষা করতে হবে।

1- ডাটাবেস ফোল্ডারের অনুমতি আপনি যে ডেটাবেসটি মুছতে চান তাতে মাইএসকিএল প্রক্রিয়াটির মতোই মালিক থাকতে হবে।

2- ডিরেক্টরি অবশ্যই খালি থাকতে হবে mysql ডেটা ডিরেক্টরিতে যান এবং যাচাই ডিরেক্টরিটি ফাঁকা রয়েছে verify

এরপরে আপনার মাইএসকিএল ক্লিমে সংযোগ করুন এবং আবার ড্রপ ডাটাবেস কমান্ড চালান।


1

এটি দিয়ে যান এবং নির্বাচিত ডিবিতে সম্পর্কিত ক্যাশে ফাইলগুলি সরিয়ে ফেলুন তারপরে আপনি নিজের ডাটাবেসটি ফেলে দিতে পারেন

প্রথমে আপনার নির্বাচিত ডিবি সমন্বিত আপনার মাইএসকিউএল ডেটা ডিরেক্টরিটি সন্ধান করুন

লিনাক্স

  • মাইএসকিউএল এর কনফিগারেশন ফাইলটি খুলুন: কম /etc/my.cnf
  • "ডাটাডির" শব্দটির জন্য অনুসন্ধান করুন:

  • যদি এটি বিদ্যমান থাকে তবে এটি এমন একটি লাইন হাইলাইট করবে যা পড়বে: ডাটাডির = [পথ]

  • আপনি নিজেও সেই লাইনটি সন্ধান করতে পারেন। এটি সাধারণত [মাইএসকিএলডি] শিরোনামের অধীনে পাওয়া যেত তবে এটি সেখানে খুঁজে পাওয়া দরকার নেই।

  • যদি সেই লাইনটি বিদ্যমান না থাকে, তবে মাইএসকিউএল: / var / lib / mysql এ ডিফল্ট হবে।

উইন্ডোজ 1. মাইএসকিউএল এর কনফিগারেশন ফাইলটি নোটপ্যাডে খুলুন: my.ini

My.ini মাইএসকিউএল প্রোগ্রাম ফোল্ডারে থাকবে যা এটি যেখানেই ইনস্টল হবে সেখানেই থাকবে। আপনি যদি মাইএসকিউএল ইনস্টল না করে থাকেন, তবে উইন্ডোজ "অনুসন্ধান" বৈশিষ্ট্যটি my.ini সন্ধান করতে ব্যবহার করুন। আপনি [ড্রাইভ]: \ প্রোগ্রাম ফাইলগুলি \ মাইএসকিউএল \ মাইএসকিউএল সার্ভার 5.5 এ ব্রাউজ করে এটি ম্যানুয়ালি অনুসন্ধান করতে পারেন।

  1. "ডাটাডির" শব্দটি খুঁজে পেতে নোটপ্যাডে অনুসন্ধান করুন।

  2. যদি এটি বিদ্যমান থাকে তবে এটি এমন একটি লাইন হাইলাইট করবে যা পড়বে: ডাটাডির = [পথ]

  3. আপনি নিজেও সেই লাইনটি সন্ধান করতে পারেন। এটি সাধারণত [মাইএসকিএলডি] শিরোনামের অধীনে পাওয়া যেত তবে এটি সেখানে খুঁজে পাওয়া দরকার নেই।

  4. যদি সেই লাইনটি বিদ্যমান না থাকে, তবে আপনি সম্ভবত এটি [ড্রাইভ] এর আওতায় পাবেন: \ প্রোগ্রামডাটা \ মাইএসকিউএল \ মাইএসকিউএল সার্ভার 5.5 \ ডেটা।

দ্রষ্টব্য: "প্রোগ্রামডেটা" ফোল্ডারটি লুকিয়ে থাকতে পারে। আপনাকে উইন্ডোজ এক্সপ্লোরের মধ্যে স্পষ্ট পথটি টাইপ করতে হতে পারে


1
mysql -s -N -username -p information_schema -e 'SELECT Variable_Value FROM GLOBAL_VARIABLES WHERE Variable_Name = "datadir"'

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

লিনাক্সে আউটপুট [আমার ফলাফল]:

/var/lib/mysql

অথবা

mysql> select @@datadir;

MYSQL CLI এ LI

এবং তারপর

cd /var/lib/mysql && rm -rf test/NOTEMPTY

আপনার ফলাফলের ভিত্তিতে পথ পরিবর্তন করুন


0

আমার ক্ষেত্রে আমি phpMyAdminব্যবহার করছি আমার ডাটাবেসের অধীনে কোনও টেবিল দেখতে পেলাম না Wamp serverতবে আমি যখন এই ফাইলটি ম্যানুয়ালি মুছে ফেলি তখন আমি C:\wamp\bin\mysql\mysql5.6.12\dataএটি খুঁজে পেলাম কোনও সমস্যা ছাড়াই সহজেই ডাটাবেসটিতে employed.ibdসক্ষম হয়েছি ।dropphpMyAdmin


0

আমি আমার ক্ষেত্রে সমস্যাটি ডাটাবেস ডিরেক্টরিতে থাকা একটি অবশিষ্ট ডাম্প ফাইল ছিল। সেই ফাইলটি সম্ভবত আমি ব্যাকআপ স্ক্রিপ্ট পরীক্ষার সময় উত্পন্ন হয়েছিল working একবার আমি নিজে ফাইল মুছে ফেললাম তখন আমি ডাটাবেসটি ফেলে দিতে পারি।


0

আমার কাছে একই সমস্যা ছিল (ম্যাকের উপর মাইএসকিএল 5.6) 'আরএমডিআর পারবেন না' দিয়ে- ডাটাবেসগুলি নামানোর সময় ত্রুটি। একটি খালি ডাটাবেস ডিরেক্টরি ছেড়ে দেওয়া সম্ভব নয়। সমাধানগুলির জন্য @ ফ্রেমওয়ার্ক এবং @ বিলকে ধন্যবাদ।

আমি প্রথমে টার্মিনাল থেকে (/ অ্যাপ্লিকেশনস / এক্সএএমপিপি / এক্সএএমপিপিএলস / ভার / মাইএসকিএল) ডিবি ডিরেক্টরি মুছে ফেলেছি।

আরও ডিবি ড্রপের জন্য, আমি খালি পরীক্ষার ফাইলটিও মুছলাম। আমার ক্ষেত্রে ফাইলটিকে নটপটি বলা হয়েছিল তবে এখনও 0 রয়েছে:

sudo ls -al test
total 0
drwxrwx---   3 _mysql  _mysql  102 Mar 26 16:50 .
drwxrwxr-x  18 _mysql  _mysql  612 Apr  7 13:34 ..
-rw-rw----   1 _mysql  _mysql    0 Jun 26  2013 NOTEMPTY

প্রথমে ছোড এবং তারপরে

sudo rm -rf test/NOTEMPTY

এর পরে ডাটাবেসগুলি ফেলে দেওয়ার কোনও সমস্যা নেই


0

কেবলমাত্র আমার ক্ষেত্রে ডেটা ডিরেক্টরিতে যান "wamp \ bin \ mysql \ mysql5.6.17 \ data" এখানে আপনি সমস্ত ডাটাবেস ফোল্ডার দেখতে পাবেন কেবল আপনার ডাটাবেস ফোল্ডারটি মুছে ফেলুন ডিবি স্বয়ংক্রিয়ভাবে ড্রপড হবে :)


0

আমি এই সমস্যায় পড়েছি এবং আমি যখন ডাটাবেস ডিরেক্টরিটি পরীক্ষা করে দেখলাম তখন অনেকগুলি ফাইল ছিল exp( ibdএবং frmফাইলগুলি সরানো হয়েছিল)। ফাইলগুলি তাদের বৈশিষ্ট্যগুলি দেখার জন্য তালিকাবদ্ধ করা (যেহেতু মালিকদের ফাইলে ইতিমধ্যে rw সুবিধাগুলি ছিল)

lsattr *.exp
-------------e-- foo.exp
-------------e-- bar.exp

ম্যান পেজ বলে

       The  'e'  attribute  indicates that the file is using extents for mapping the blocks on disk.
       It may not be removed using chattr(1).

আপনি আসলে chattr -eএই ফাইলগুলি করতে পারেন , তবে মাইএসকিএল এখনও আপনাকে ডাটাবেস ছাড়তে দেয় না। ফাইলগুলি অপসারণের rmমাধ্যমে, ডাটাবেসটি পরিষ্কারভাবে বাদ দেওয়া যায়।


0

এটি ঘটে কারণ আপনি অন্য সার্ভার থেকে / সার্ভারে / var / lib / mysql ফোল্ডারের ডাটাবেস ফোল্ডারটি অনুলিপি করেছেন। তবে আপনি এই ফাইলগুলি অনুলিপি করেন নি: আপনি একটি নতুন ডিবি এবং টেবিল তৈরি করতে পারেন যা আপনি সেগুলি ফেলে দিতে সক্ষম হন তবে আপনি অন্য সার্ভার থেকে অনুলিপি করে থাকা ডাটাবেসগুলি ফেলে দিতে পারবেন না এবং আপনি অন্য সার্ভার থেকে অনুলিপি করেছেন এমন একই ডাটাবেসও সন্ধান করতে পারবেন না। সুতরাং আমি সেই ফাইলগুলি অনুলিপি করেছি: আইব_ফুফার_পুল, ইবদাটা 1, ইব_লগফিল 0, ইব_লগফাইল 1, আইবিটিএমপি 1 তার পরে সমস্ত কাজ করে।

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