মাইএসকিউএল> সারণীর অস্তিত্ব নেই। তবে এটি করে (বা এটি করা উচিত)


261

আমি একটি মাইএসকিউএল ইনস্টলেশনের ডেটাডির পরিবর্তন করেছি এবং একটি বেস বাদে সমস্ত ঘাঁটি সঠিকভাবে সরানো হয়েছে। আমি সংযোগ করতে পারি এবং USEডাটাবেস। SHOW TABLESএছাড়াও আমাকে সমস্ত টেবিলগুলি সঠিকভাবে ফেরত দেয় এবং প্রতিটি সারণির ফাইলগুলি মাইএসকিউএল ডেটা ডিরেক্টরিতে বিদ্যমান।

যাইহোক, আমি যখন SELECTটেবিল থেকে কিছু করার চেষ্টা করি তখন আমি একটি ত্রুটি বার্তা পাই যে টেবিলটি বিদ্যমান নেই। তবুও, এটি অর্থবোধ করে না যেহেতু আমি SHOW TABLESবিবৃতি দিয়ে একই টেবিলটি প্রদর্শন করতে সক্ষম হয়েছি ।

আমার ধারণাটি SHOW TABLESফাইলের অস্তিত্বের তালিকা দেয় তবে কোনও ফাইল দূষিত কিনা তা যাচাই করে না। ফলস্বরূপ, আমি সেই ফাইলগুলি তালিকাবদ্ধ করতে পারি তবে সেগুলিতে অ্যাক্সেস করতে পারি না।

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

কেউ কি জানো এটা কেন হচ্ছে?

উদাহরণ:

mysql> SHOW TABLES;
+-----------------------+
| Tables_in_database    |
+-----------------------+
| TABLE_ONE             |
| TABLE_TWO             |
| TABLE_THREE           |
+-----------------------+
mysql> SELECT * FROM TABLE_ONE;
ERROR 1146 (42S02): Table 'database.TABLE_ONE' doesn't exist

আপনি কি ব্যাকআপ থেকে ডাটাবেস পুনরুদ্ধার করেছেন? বা আপনি কেবল ডিবি ফাইলগুলি অনুলিপি করেছেন? আপনার কি মাইএসকিএল সার্ভারে রুট অ্যাক্সেস রয়েছে?
অ্যালিনোজ

শুধু ফাইলগুলি অনুলিপি করেছেন! হ্যাঁ আমার কাছে সমস্ত
কিছুতে

আপনি কি চেষ্টা করতে পারেন: mysql_fix_privilege_tables
alinoz

4
এই ইনডোডব টেবিলগুলি কি?
পল ডিকসন

1
হ্যাঁ, সমস্ত সারণী InnoDB। এটা না বলে আমার খারাপ!
জনস্মিত

উত্তর:


263

যদি এখনও কেউ যত্নশীল হন তবে:

সরাসরি কমান্ড ব্যবহার করে একটি ডাটাবেস ডিরেক্টরি অনুলিপি করার পরে আমার একই সমস্যা ছিল

cp -r /path/to/my/database /var/lib/mysql/new_database

আপনি যদি InnoDBটেবিল ব্যবহার করে এমন কোনও ডাটাবেস দিয়ে এটি করেন তবে উপরে উল্লিখিত ত্রুটিযুক্ত এই 'পাগলটি টেবিলের অস্তিত্ব নেই' পেয়ে যাবেন।

সমস্যাটি হ'ল ib*মাইএসকিউএল ডেটাডিরের মূল হিসাবে আপনার ফাইলগুলি প্রয়োজন (যেমন ibdata1, ib_logfile0এবং ib_logfile1)।

যখন আমি সেগুলি অনুলিপি করেছিলাম এটি আমার জন্য কাজ করেছিল।


27
আমার জীবন সংরক্ষিত! অন্য কারও জন্য নিশ্চিত হন যে আপনি যদি নতুন ইনস্টলেশনটিতে অনুলিপি করার চেষ্টা করছেন তবে বিদ্যমান আইবি * ফাইলগুলি ওভাররাইট না করে। আপনার বিদ্যমান মাইএসকিএল / ডিরেক্টরিটিকে ব্যাকআপ দিন, পুরানোটির সাথে আপনি পুনরুদ্ধার করতে চান প্রতিস্থাপন করুন, মাইএসকিএলডাম্প সবকিছু, তারপরে তাজা মাইএসকিএল / পুনরুদ্ধার করুন। তারপরে আপনি মাইএসকিএলডম্পগুলি সঠিকভাবে আমদানি করতে পারেন।
ম্যাথু

1
স্থানীয়ভাবে আমার ডাটাবেসটি অনুলিপি করতে ম্যাকের উপর, আইবডাটা ফাইলটি অনুলিপি করার পাশাপাশি (ডাটাবেস ডিরের পাশে অবস্থিত) আমার chown _mysql:wheel, ডাটাবেসনাম ডিয়ার, ইবদাটা এবং ডিয়ারের সমস্ত ফাইল (ব্যবহার chown -R ...) করতে হয়েছিল। একইভাবে, chmod -R 660 databasenameডিরের ভিতরে অনুমতিগুলি ভুল ছিল তাই ড্যাটটবেসে প্রদর্শিত টেবিলগুলি পাওয়া দরকার।
ডিলান ভ্যালাদে

4
ধন্যবাদ মাইক কেবল পরিষ্কার করার জন্য আপনাকে এই কাজটি পেতে মাইএসকিএল পরিষেবাটি পুনরায় চালু করতে হবে। কমপক্ষে আমি করেছি, এবং এটি কাজ করে সদ্ব্যবহারের জন্য ধন্যবাদ। সেখানে প্রচুর ডেটা সেভ হয়ে গেছে!
নিক মার্টিন

15
দ্রষ্টব্য: ব্যবহার করতে ভুলবেন না chown!!! সুতরাং, সমস্ত পরে cpএই কমান্ডটি ব্যবহার করুন ->chown mysql:mysql /var/lib/mysql/ -R
কে-গুণ

1
দ্রষ্টব্য 2: যথাযথ অনুমতি প্রয়োগ করতে ভুলবেন না। আমার ক্ষেত্রে sudo chmod -R 600 /var/lib/mysql
Augusto

45

আমার জন্য ম্যাক ওএসে (মাইএসকিউএল ডিএমজি ইনস্টলেশন) মাইএসকিউএল সার্ভারের একটি সাধারণ পুনঃসূচনা সমস্যার সমাধান করেছে। আমি ধারণা করছি হাইবারনেশনের কারণে এটি হয়েছে।


ধন্যবাদ আমার জন্য একই সমস্যাটি স্থির করে। হঠাৎ বিদ্যুৎ হ্রাসের কারণে আমার মেশিনটি বন্ধ হওয়ার পরে খনি ঘটেছিল। প্রথম মেশিন পুনঃসূচনা / মাইএসকিউএল স্টার্টআপের পরে, আমি ত্রুটি পেয়েছি। তারপরে, আমি এই উত্তরটি পড়েছি। আমি সিস্টেমের অগ্রাধিকারের মাধ্যমে মাইএসকিউএল বন্ধ করেছি / শুরু করেছি এবং এটি ঠিক হয়ে গেছে।
জেফ ইভান্স

2
sudo /usr/local/mysql/support-files/mysql.server restart
লাফস্ট

একইভাবে। আমি ম্যাকওএস সিয়েরা 10.12.6 এ আপগ্রেড করার পরে এতে ছুটে এসেছি। কার্যকারণের কোনও যোগসূত্র নেই তা নির্দিষ্ট নয় তবে সময়টি সন্দেহজনক বলে মনে হচ্ছে।
ডেভ মালিগান

ধন্যবাদ, কিছুটা কাজ করেছেন; আমি (5.6, উইন্ডোজ) মাইএসকিএল পরিষেবাটি পুনরায় চালু check table TABLE_ONE;করলাম তখন আমি কিছু ত্রুটি পেয়েছি "পার্টিশন পি 2 ত্রুটি ফিরে পেয়েছে", "আইডিএক্স_ব্লাহ_1 কে দূষিত হিসাবে চিহ্নিত করা হয়েছে", এবং "আইডিএক্স_ব্লাহ 2_কে দূষিত হিসাবে চিহ্নিত করা হয়েছে"। এখন আমি চলতে optimize table TABLE_ONE;গিয়ে ত্রুটি পেয়েছি "টেবিল 'ডাটাবেস T TABLE_ONE' বিদ্যমান নেই"।
ওমর

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

30

আমি যে টেবিলের নামটি ব্যবহার করছি তা বন্ধ হওয়ার সময় আমি এই সমস্যাটি পাই। সুতরাং সারণিকে 'ডিবি' বলা হয় তবে আমি নির্বাচনী বিবৃতিতে 'ডিবি' ব্যবহার করি। কেসটি একই রকম আছে তা নিশ্চিত করুন।


13
+1 ক্ষেত্রের নামগুলি সংবেদনশীল নয়, তবে টেবিলের নাম। সাধারণ ভুল, এবং খুব বিরক্তিকর।
গোলেজট্রোল

27

সেট lower_case_table_namesকরার সময় 1, এবং তারপরে সেই ভেরিয়েবলের ডিফল্ট মান দিয়ে তৈরি করা সারণীগুলি অ্যাক্সেস করার চেষ্টা করার সময়ও এই ত্রুটি ঘটতে পারে । সেক্ষেত্রে আপনি এটিকে আগের মানটিতে ফিরিয়ে দিতে পারবেন এবং আপনি টেবিলটি পড়তে সক্ষম হবেন।


4
এই আমাকে। আমি মানটি আবার ফিরিয়ে দিয়েছি, ডাটাবেস পুনরায় চালু করেছি, টেবিলগুলি রফতানি করেছি, মানটি আবার 1 এ সেট করেছিলাম, ডাটাবেসটি পুনরায় চালু করেছি, টেবিলগুলি পুনরায় আমদানি করেছি এবং সবকিছু আবার কাজ করেছে।
wmarbut

17
  1. বন্ধ করুন mysqld
  2. ব্যাকআপ মাইএসকিএল ফোল্ডার: cp -a /var/lib/mysql /var/lib/mysql-backup
  3. পুরানো মেশিন থেকে ডাটাবেস ফোল্ডারে অনুলিপি করুন /var/lib/mysql
  4. পুরানো ডাটাবেস থেকে আইবি * (আইবি_লগফাইল *, ইবদাটা) ওভাররাইড করুন
  5. mysqld শুরু করুন
  6. ডাম্প ডাটাবেস
  7. mysqldump >dbase.mysql
  8. মাইএসকিএল পরিষেবা বন্ধ করুন
  9. অপসারণ /var/lib/mysql
  10. নামান্তর /var/lib/mysql-backupকরতে/var/lib/mysql
  11. mysqld শুরু করুন
  12. ডাটাবেস তৈরি করুন
  13. mysqldump < dbase.mysql

আমার ক্ষেত্রে, আমাকে আরও করতে হয়েছিল: 10.5 <db_name> ডিরেক্টরিটি / var / lib / mysql / এর অধীন থেকে মুছে ফেলুন
টনি দ্য টেক

এটা কাজ করছে না. :( টেবিল 'টেবিলের নাম। wp_posts' বিদ্যমান নেই
জহিরুল ইসলাম মামুন

14

দয়া করে ক্যোয়ারী চালান:

SELECT 
    i.TABLE_NAME AS table_name, 
    LENGTH(i.TABLE_NAME) AS table_name_length,
    IF(i.TABLE_NAME RLIKE '^[A-Za-z0-9_]+$','YES','NO') AS table_name_is_ascii
FROM
    information_schema.`TABLES` i
WHERE
    i.TABLE_SCHEMA = 'database'

দুর্ভাগ্যক্রমে মাইএসকিউএল ইউনিকোড এবং প্রিন্টযোগ্য অক্ষরগুলি সারণির নামে ব্যবহার করার অনুমতি দেয়। আপনি যদি কিছু নথি / ওয়েবসাইট থেকে কোড তৈরির অনুলিপি করে আপনার টেবিলগুলি তৈরি করেন তবে এর কোথাও কোথাও শূন্য-প্রস্থের স্থান থাকার সম্ভাবনা রয়েছে।


খুব দরকারী পোস্ট, ধন্যবাদ! তবে সমস্ত টেবিলগুলি সঠিক নাম দৈর্ঘ্যের সাথে ASCII
জনস্মিত

11

আমি এই দুঃস্বপ্নে মাত্র তিন দিন কাটিয়েছি। আদর্শভাবে, আপনার একটি ব্যাকআপ থাকা উচিত যা আপনি পুনরুদ্ধার করতে পারেন, তারপরে কেবল ক্ষতিগ্রস্থ টেবিলটি ফেলে দিন। এই ধরণের ত্রুটিগুলি আপনার আইবডেটা 1কে বিশাল আকার ধারণ করতে পারে (পরিমিত টেবিলগুলির জন্য 100 গিগাবাইট + আকারে)

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

সুতরাং, কাজ হিসাবে, /var/log/mysql/database_name/টেবিলের নামটি যান এবং সরান। *

তারপরে তাত্ক্ষণিকভাবে টেবিলটি ফেলে দেওয়ার চেষ্টা করুন; এটি করা এখন কাজ করা উচিত। এখন ডাটাবেসটিকে একটি নতুন ডাটাবেসে পুনরুদ্ধার করুন এবং নিখোঁজ টেবিলগুলি পুনরায় তৈরি করুন। তারপরে ভাঙা ডাটাবেস ফেলে দিন।

আমাদের ক্ষেত্রে আমরা mysql has gone awayসব ডাটাবেসে এলোমেলোভাবে বিরতিতে বার্তা পাচ্ছিলাম; ক্ষতিগ্রস্থ ডাটাবেসগুলি সরানোর পরে সমস্ত কিছু স্বাভাবিক হয়ে যায়।


থ্যাঙ্কস অ্যান্ডি, আমি যে সমস্যার মুখোমুখি হচ্ছি তার সন্ধান পেয়েছি। সি ড্রাইভের মাধ্যমে স্পেস ক্রাচ বাঁচানোর জন্য আমি আইবডটা 1 কে সি ড্রাইভের কোনও দিক থেকে ডি ড্রাইভে স্থানান্তরিত করেছি। ধন্যবাদ, আমি আপনার মন্তব্যগুলি পড়ার পরে আমার ডি ড্রাইভে আইবডেটা 1 পেয়েছি (আইব_লগফিল 1 এবং আইবি_লগফিল 0 ফাইল সহ)। এখন এই ফাইলটি আমি কোথায় স্থানান্তরিত করেছি এবং সেখান থেকে পুনরুদ্ধার করব look তাহলে আশা করি আমার টেবিলগুলি ফিরে আসবে।
একেএস

আপনি কীভাবে "তাত্ক্ষণিকভাবে টেবিলটি ফেলে দেওয়ার চেষ্টা করবেন"? আমার একই সমস্যা আছে, কোনও ব্যাকআপ নেই তাই আমি কমপক্ষে টেবিলের কাঠামো পাওয়ার উপায় খুঁজছি তবে আপনি যদি ডিরেক্টরি থেকে ফাইলগুলি সরিয়ে ফেলেন তবে সবকিছু কি সহজে চলে যায়?
mmvsbg

এটি এটা করেছে! ধন্যবাদ,
jstuardo

11

আমি কারণটি জানি না তবে আমার ক্ষেত্রে আমি কেবল বিদেশী কীগুলি চেক অক্ষম এবং সক্ষম করার সমাধান করেছি

SET FOREIGN_KEY_CHECKS=0;
SET FOREIGN_KEY_CHECKS=1;

4
ধন্যবাদ ভাই! আমার ক্ষেত্রে, আমাকে বিদেশী_কি_চেকগুলি অক্ষম করতে হয়েছিল এবং অদৃশ্য হয়ে যাওয়া টেবিলের উপর একটি নির্বাচিত ক্যোয়ারী চালাতে হয়েছিল তখন টেবিলটি আবার স্বাভাবিক হয়ে যায়। আমি মনে করি ডেটা সারিগুলিতে কিছু বিদেশী কী লঙ্ঘন আছে কারণ এই সমস্যাটি হওয়ার আগে আমার একটি বাধা প্রোগ্রাম ছিল।
এজিস্ট লি

ঠিক এখনও কেন তা জানতে পেরেছি না, তবে এটি আমার সমস্যার
সমাধানও করেছে

11

আমারও একই সমস্যা ছিল এবং আমি ২-৩ দিন অনুসন্ধান করেছিলাম, তবে আমার জন্য সমাধানটি আসলেই বোকা।

মাইএসকিএল পুনরায় চালু করুন

$ sudo service mysql restart

এখন টেবিলগুলি অ্যাক্সেসযোগ্য হয়ে ওঠে।


1
পুরোপুরি আমার জন্য কাজ করেছে, যদিও আমার আদেশটি কিছুটা আলাদা ছিল:
do

আমার অনুমান করার চেষ্টা করার বিষয়গুলির তালিকার শীর্ষে এটি হওয়া উচিত। একটি শট মূল্যবান এবং আমার ক্ষেত্রে এটি কাজ করে।
করুস

7

ঠিক আছে এটি বেশ অযৌক্তিক শোনাচ্ছে, তবে আমাকে হাস্যকর করুন।
আমার বিবৃতিটি আমি এতে পরিবর্তন করলে আমার জন্য সমস্যাটি সমাধান হয়ে যায়:

SELECT * FROM `table`

আমি দুটি পরিবর্তন করেছি
1.) টেবিলের নামটি লোয়ার কেস বানিয়েছি - আমি জানি !!
২) নির্দিষ্ট উদ্ধৃতি চিহ্নটি ব্যবহার করুন = ` : এটি আপনার ট্যাবের উপরের চাবিকাঠি

সমাধানটি অযৌক্তিক শোনায়, তবে এটি কার্যকর হয়েছিল এবং এটি শনিবার সন্ধ্যা এবং আমি সকাল ৯ টা থেকে কাজ করছি - সুতরাং আমি এটি গ্রহণ করব :)

শুভকামনা।


1
জাস্ট এফআইআই - টেবিলটি মাইসমাম এবং INNO নয়
প্ল্যানেট অজানা

1
এছাড়াও `কে ব্যাকটিক বলা হয়
গ্যারি

7

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

এটি আমার পক্ষে কাজ করেছে:

  1. নতুন WAMP বন্ধ করুন

  2. আপনার প্রয়োজনীয় ডাটাবেস ডিরেক্টরিতে অনুলিপি করুন এবং পুরানো ডাব্লুএমএপি ইনস্টলেশন থেকে আইবিডটা 1 ফাইল

  3. মুছুন ib_logfile0এবংib_logfile1

  4. WAMP শুরু করুন

আপনার এখন আপনার ডাটাবেসের ব্যাকআপ তৈরি করতে সক্ষম হওয়া উচিত। তবে আপনার সার্ভারটি আবার চালু হওয়ার পরে আপনার এখনও সমস্যা হবে। সুতরাং এখন WAMP পুনরায় ইনস্টল করুন এবং আপনার ডাটাবেসগুলি আমদানি করুন।


আমি চাই যে লোকেদের তারা যে ফাইলগুলি রেফারেন্স করে সেখানে কোথায় থাকে ...
MagentoAaron

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

7

আইডিবি-ফাইল অনুলিপি করার আগে টেবিলস্পেস ফেলে দেওয়ার জন্য স্কয়ার কোয়েরি চালানোর চেষ্টা করুন:

ALTER TABLE mydatabase.mytable DISCARD TABLESPACE;

আইডিবি-ফাইল অনুলিপি করুন

ALTER TABLE mydatabase.mytable IMPORT TABLESPACE;

মাই এসকিএল পুনরায় চালু করুন


আপনি আমাকে বাঁচিয়েছেন :)
l00k

@ I0pan আমি উল্লিখিত মত একই পদক্ষেপ চেষ্টা করেছি। তবে ALTER TABLE mydatedia.mytable Import TABLESPACE এর পরে; এটি দেখায় যে টেবিলের অস্তিত্ব নেই। তবে এটি করে :(
সৈয়দ আসাদ আব্বাস জায়েদী

5

মাইএসকিউএল পুনরায় ইনস্টল করার পরেও আমার একই সমস্যা হয়েছিল বলে মনে হচ্ছে, ইনস্টলের সময় কিছু কনফিগারেশন ফাইল যা InnoDB লগ ফাইলগুলি সম্পর্কিত তথ্য সংরক্ষণ করে, এই ফাইলগুলি আই-লগফিল * (তারা লগ ফাইলগুলি ঠিক আছে?), ওভাররাইট করা হয়েছে। এই সমস্যাটি সমাধান করার জন্য আমি কেবলমাত্র _blogfile * ফাইলগুলি মুছলাম।


5

আমার জন্য কী কাজ করেছিল, কেবল টেবিলটি ফেলে দিচ্ছিল, যদিও এটি বিদ্যমান ছিল না। তারপরে আমি টেবিলটি তৈরি করেছি এবং পূর্বে করা একটি স্কিল ডাম্প থেকে পুনরায় তৈরি করেছি।

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


আমি একটি পদ্ধতি তৈরি করেছিলাম, বুঝতে পেরেছি এটির দৃষ্টিভঙ্গি হওয়া দরকার। তাই আমি প্রক্রিয়াটির শেষে কিছু জেডজেস দিয়ে নাম পরিবর্তন করেছিলাম যাতে আমার কাছে এটি রেফারেন্সের জন্য থাকতে পারে এবং একই নামের একটি ভিউ তৈরি করা যায়। এটি দেখার জন্য একটি নির্বাচন পেতে পারেনি, এই ত্রুটি পেয়েছে। <br> কোডটি কোনও পাঠ্য ফাইলে অনুলিপি করে দেখুন এবং পদ্ধতি উভয়ই মুছে ফেলে। ভিউ পুনরুদ্ধার এবং সব ঠিক ছিল। <br> হ্যাঁ - সাত বছর পরে - এখনও কিছু প্রান্ত ক্ষেত্রে কিছু প্রেতাত্মা / ক্যাশেড নাম কর্ম চলছে।
রজার ক্রুয়েজার

5

একটি ভূতের টেবিলের সাথে একই সমস্যা ছিল। ধন্যবাদ ব্যর্থতার আগে থেকেই একটি এসকিউএল ডাম্প এসেছিল।

আমার ক্ষেত্রে, আমাকে করতে হয়েছিল:

  1. মাইএসকিউএল বন্ধ করুন
  2. আইবি * ফাইলগুলি /var/mysqlএকটি ব্যাকআপ থেকে সরান
  3. মুছে ফেলা /var/mysql/{dbname}
  4. মাইএসকিউএল পুনরায় চালু করুন
  5. খালি ডাটাবেস পুনরুদ্ধার করুন
  6. ডাম্প ফাইল পুনরুদ্ধার করুন

দ্রষ্টব্য: ডাম্প ফাইলের প্রয়োজন।


আমি অনুমান করি এর /var/lib/mysqlপরিবর্তে আপনি বলতে চাইছেন/var/mysql
নোকট করুন

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

3
  1. ডেটাবেসটিতে মাইএসকিএলডাম্প করুন:

    mysqldump -u user -ppass dbname > D:\Back-ups\dbname.sql
  2. ডাটাবেস পুনরুদ্ধার করুন

    mysql -u user -ppass dbname < D:\Back-ups\dbname.sql

এখন ডাটাবেসের সমস্ত টেবিল সম্পূর্ণ পুনরুদ্ধার করা হয়েছে। ব্যবহার করে দেখুন ..

SELECT * FROM dbname.tablename;

2

আমি নতুন কম্পিউটারে মারিয়াডিবি ইনস্টল করেছি, মাইএসকিএল পরিষেবা বন্ধ করে দিয়ে ডেটা ফোল্ডারে ডেটা ফোল্ডারে নামিয়েছি- আমি আমার সমস্যার সমাধান করেছি কেবলমাত্র মাইএসকিএল-ডেটা \ টেবিল_ফোল্ডার এবং আইবডাটা 1 ক্র্যাশ হওয়া এইচডি মাইএসকিএল ডেটা ফোল্ডার থেকে নতুন ইনস্টল করা মাইএসকিএল ডেটা ফোল্ডারে ying

আমি আইবি_লগফাইল0 এবং আইবি_লগফাইল 1 এড়িয়ে গেছি (অন্যথায় সার্ভারটি পরিষেবা শুরু করে নি)

মাইএসকিএল পরিষেবা শুরু হয়েছে।

তারপরে সার্ভার চলছে।


2

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

এখানে সমাধান রয়েছে, যার বেশিরভাগটির জন্য মাইএসকিএল পুনরায় চালু করা দরকার।

  • আপনার লগ ফাইলগুলি পুনরায় তৈরি করুন ( mysql মুছুন এবং পুনরায় চালু করুন )
  • আপনার লগ ফাইলগুলি পুনরায় আকার দিন (MySQL 5.6+ আপনার জন্য ফাইলটি পুনরায় তৈরি করবে)
  • আপনি যদি কোনও ধরণের ডেটা মাইগ্রেশন করে থাকেন তবে নিশ্চিত হয়ে নিন যে আপনি সঠিকভাবে সঠিক ফাইলটি স্থানান্তরিত করেছেন এবং অন্যরা ইতিমধ্যে জানিয়েছে বলে এর অনুমতি দিয়েছেন make
  • আপনার ডেটা এবং লগ ফাইলের অনুমতি পরীক্ষা করুন, যে মাইএসকিএল উভয়েরই মালিক
  • যদি সমস্ত কিছু ব্যর্থ হয়, আপনাকে সম্ভবত ডাটাবেসটি পুনরায় তৈরি করতে হবে

2

এখানে আরও একটি দৃশ্য (সংস্করণ আপগ্রেড) :

আমি আমার ওএস (ম্যাক ওএস এল ক্যাপ্টেন) পুনরায় ইনস্টল করেছি এবং মাইএসকিএল (হোমব্রু ব্যবহার করে) এর একটি নতুন সংস্করণ ইনস্টল করেছি। ইনস্টল করা সংস্করণটি (5..7) আমার আগের সংস্করণটির চেয়ে নতুন হয়েছে। তারপরে আমি আইবি * ফাইলগুলি সহ টেবিলগুলিতে অনুলিপি করে সার্ভারটি পুনরায় শুরু করেছি। আমি মাইএসকিএল ওয়ার্কবেঞ্চে টেবিলগুলি দেখতে পেতাম তবে যখন আমি কোনও কিছু নির্বাচন করার চেষ্টা করলাম, তখন আমি পেয়েছিলাম "টেবিলের অস্তিত্ব নেই"।

সমাধান:

  1. মাইএসকিউএল সার্ভার যেমন বন্ধ mysql.server stopবাbrew services stop mysql
  2. সার্ভারটি ব্যবহার করে শুরু করুন mysqld_safe --user=mysql --datadir=/usr/local/var/mysql/(প্রয়োজন অনুসারে পথ পরিবর্তন করুন)
  3. চালান mysql_upgrade -u root -p password(অন্য টার্মিনাল উইন্ডোতে)
  4. চলমান সার্ভারটি বন্ধ করুন mysqladmin -u root -p password shutdown
  5. সার্ভারটি স্বাভাবিক মোডে পুনরায় চালু করুন mysql.server startবাbrew services start mysql

প্রাসঙ্গিক ডক্স এখানে


সত্যই অনেক চেষ্টা করেছিলাম কিন্তু আমার সমস্ত ডাটাবেস সহ নতুন সার্ভারে স্থানান্তরিত করার পরে এটিই আমাকে একমাত্র সাহায্য করেছিল। ধন্যবাদ! (উবুন্টু 16.04)
ফাল্ক

2

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


1
এটি আমার পক্ষে কাজ করে! প্রতিটি ট্রিগার চেক করেছেন এবং একটি ট্রিগার উন্নত করা দরকার এবং এটি কার্যকর হয়েছে!
পরেশ

1

এটি সম্ভব আপনার টেবিলের নামটিতে একটি লুকানো অক্ষর। আপনি যখন কোনও শো টেবিল করেন তখন সেগুলি প্রদর্শিত হয় না। আপনি কি "দেখান টেবিল ট্যাবলেটিউটি দেখান" এবং ট্যাবটি "ট্যাবলেটিউটি" সম্পূর্ণ করতে পারেন এবং এটি কোনও লুকানো অক্ষরে রাখে কিনা তা দেখতে পারেন। এছাড়াও, আপনি কি টেবিলগুলি বাদ এবং পুনরায় তৈরি করার চেষ্টা করেছেন। সুযোগ সুবিধাগুলি এবং কোনও লুকানো অক্ষর নেই বলে কিছু ঠিক আছে তা নিশ্চিত করার জন্য।


ট্যাব সমাপ্তি সাহায্য করে না এবং আমি টেবিল তৈরি করতে দেখাতে পারি না কারণ টেবিল "উপস্থিত নেই"। জাহান্নাম থেকে
জনস্মিত

1

টাইমম্যাচিন ব্যাকআপ আমদানির পরে ঠিক একই সমস্যা। আমার সমাধানটি ছিল মাইএসকিউএল সার্ভারটি বন্ধ করা এবং আইবি * ফাইলগুলিতে পঠন-লিখনের অনুমতিগুলি ঠিক করা।


1

আমি মনে করি অন্য একটি উত্তর এখানে আনার উপযুক্ত (কারণ আমি এখানে একই সমস্যাটি নিয়ে এসেছি এবং এটি আমার উত্তর হয়ে গেছে):

আপনার ক্যোয়ারীর টেবিলের নামটি ডেটাবেজে যেমন আছে ঠিক ঠিক তেমন বানানযুক্ত কিনা তাও দুটিবার পরীক্ষা করে দেখুন।

একটি স্পষ্ট, নবাগত জিনিস, তবে "ব্যবহারকারী" বনাম "ব্যবহারকারী" এর মতো জিনিসগুলি মানুষকে ট্রিপ করতে পারে এবং আমি ভেবেছিলাম এটি এখানে তালিকার মধ্যে থাকা একটি সহায়ক উত্তর হবে। :)


1

আমার ক্ষেত্রে, যখন আমি রফতানি করা এসকিএল ফাইলটি আমদানি করছিলাম তখন আমি তৈরির সারণী ক্যোয়ারীর জন্য টেবিলের অস্তিত্বের মতো একটি ত্রুটি পাচ্ছিলাম।

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

সুতরাং আমি সেই ডাটাবেসের নামটিতে আন্ডারস্কোরটি সরিয়ে দিয়েছি, সমস্ত কিছুই কার্যকর হয়েছে।

আশা করি এটি অন্য কাউকেও সহায়তা করবে।


1

আমার টেবিলটির একরকম নামকরণ হয়েছিল ' Customers'অর্থাত্ একটি শীর্ষস্থানীয় স্থানের সাথে

তার মানে

ক) অনুসন্ধানগুলি ভেঙে গেছে

খ) আমার টেবিলগুলির বর্ণানুক্রমিক ক্রমে যেখানে টেবিলটি প্রত্যাশিত সেখানে উপস্থিত হয়নি, যা আমার আতঙ্কের অর্থ আমি এটি দেখতে পারি না!

RENAME TABLE ` Customer` TO `Customer`;

1

আমার ক্ষেত্রে এটি SQLCA.DBParmপরামিতি ছিল ।

আমি ব্যবহার করতাম

SQLCA.DBParm = "Databse = "sle_database.text""

তবে তা অবশ্যই হবে

SQLCA.DBParm = "Database='" +sle_database.text+ "'"

ব্যাখ্যা:

আপনি তিনটি স্ট্রিং একত্রিত করতে যাচ্ছেন:

 1. Database='              -  "Database='"

 2. (name of the database)  - +sle_database.text+

 3. '                       - "'" (means " ' "  without space)

কোয়াটারমার্কগুলিতে স্পেস ব্যবহার করবেন না। আমার সহকর্মী জানকে ধন্যবাদ।


1

এতে যান: xampp\mysql\data\dbname
dbname এর ভিতরে টেবিলনাম.ফ্রিম এবং টেবিলনাম.আইবিডি ফাইল রয়েছে।
এটি মুছে ফেলুন এবং মাইএসকিএল পুনরায় চালু করুন এবং আবার চেষ্টা করুন।


1

ibdata1আপনার পুরানো ডেটা ডিরেক্টরি থেকে কেবল ফাইল অনুলিপি করুন। অনুলিপি ib_logfile1বা ib_logfile0ফাইল না। এটি মাইএসকিউএল আর শুরু না করার কারণ হবে।


1

আজ ক্রস একই সমস্যা এসেছিল। এটি একটি mysql "আইডেন্টিফায়ার কেস সংবেদনশীলতা" সমস্যা।

অনুগ্রহ করে সম্পর্কিত ডেটা ফাইলটি পরীক্ষা করুন। খুব সম্ভবত ফাইল সিস্টেমে ফাইলের নাম নিম্ন ক্ষেত্রে হয় তবে "শো টেবিলগুলি" কমান্ডের তালিকাভুক্ত টেবিলের নামটি বড় ক্ষেত্রে থাকে। যদি সিস্টেম ভেরিয়েবল " lower_case_table_names" 0 হয় তবে ক্যোয়ারীটি "টেবিলের অস্তিত্ব নেই" ফিরিয়ে দেবে কারণ " lower_case_table_names" 0 হলে নাম তুলনা কেস সংবেদনশীল হয়।


1

উইন্ডোতেও আমার একই সমস্যা ছিল। আইবি * ফাইলগুলি এবং মাইএসকিএল ডিরেক্টরিটি আমার ডেটা ডিরেক্টরি অনুসারে অনুলিপি করার পাশাপাশি, আমার.in.ini ফাইলটিও মেলাতে হয়েছিল।

আমার পূর্ববর্তী ইনস্টলেশন থেকে my.ini ফাইলের নিম্নলিখিত লাইনটি ছিল না:

innodb-page-size=65536

কিন্তু আমার নতুন ইনস্টলেশন। সম্ভবত পুরানো ইনস্টলারে আমার সেই বিকল্পটি ছিল না বলে সম্ভবত। আমি এটিকে সরিয়ে সার্ভিসটি পুনরায় শুরু করেছি এবং টেবিলগুলি প্রত্যাশা অনুযায়ী কাজ করেছিল। সংক্ষেপে, নিশ্চিত হয়ে নিন যে নতুন my.ini ফাইলটি পুরানোটির একটি প্রতিরূপ, কেবলমাত্র তার ব্যতিক্রমটিই আপনার নতুন ইনস্টলেশন অনুসারে ডেটাডির, প্লাগইন-ডির এবং পোর্ট # exception

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