मैंने तालिका को केवल .frm
. से पुनर्स्थापित किया है और .idb
फ़ाइलें.
टेबल बनाने के लिए SQL क्वेरी प्राप्त करें
यदि आप पहले से ही अपनी तालिकाओं का स्कीमा जानते हैं, तो आप इस चरण को छोड़ सकते हैं।
-
सबसे पहले, MySQL Utilities इंस्टॉल करें .फिर आप
mysqlfrm
. का उपयोग कर सकते हैं कमांड प्रॉम्प्ट (cmd) में कमांड। -
दूसरा, SQL क्वेरी
.frm
. से प्राप्त करेंmysqlfrm
का उपयोग कर फ़ाइलें आदेश:mysqlfrm --diagnostic <path>/example_table.frm
फिर आप समान संरचित तालिका बनाने के लिए SQL क्वेरी प्राप्त कर सकते हैं। इस तरह:
CREATE TABLE `example_table` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(150) NOT NULL,
`photo_url` varchar(150) NOT NULL,
`password` varchar(600) NOT NULL,
`active` smallint(6) NOT NULL,
`plan` int(11) NOT NULL,
PRIMARY KEY `PRIMARY` (`id`)
) ENGINE=InnoDB;
टेबल बनाएं
उपरोक्त SQL क्वेरी का उपयोग करके तालिकाएँ बनाएँ।
यदि पुराना डेटा अभी भी मौजूद है, तो आपको पहले संबंधित डेटाबेस और तालिकाओं को छोड़ना पड़ सकता है। सुनिश्चित करें कि आपके पास डेटा फ़ाइलों का बैकअप है।
डेटा पुनर्स्थापित करें
नया तालिका डेटा निकालने के लिए यह क्वेरी चलाएँ:
ALTER TABLE example_table DISCARD TABLESPACE;
यह नए .frm
. के बीच के कनेक्शन को हटा देता है फ़ाइल और (नया, खाली) .idb
फ़ाइल। साथ ही, .idb
को हटा दें फोल्डर में फाइल करें।
फिर, पुराना .idb
डालें नए फ़ोल्डर में फ़ाइल करें, जैसे:
cp backup/example_table.ibd <path>/example_table.idb
सुनिश्चित करें कि .ibd
फ़ाइलें mysql
. द्वारा पढ़ी जा सकती हैं उपयोगकर्ता, उदा. chown -R mysql:mysql *.ibd
. चलाकर फ़ोल्डर में।
पुराना डेटा आयात करने के लिए यह क्वेरी चलाएँ:
ALTER TABLE example_table IMPORT TABLESPACE;
यह .idb
. से डेटा आयात करता है फ़ाइल और डेटा को पुनर्स्थापित करेगा।