होना चाहिए यह मुझे पागल बना रहा है: मैंने एक सर्वर पर विभाजित तालिका का एक mysqldump किया था, परिणामी SQL डंप को किसी अन्य सर्वर पर ले जाया गया था, और सम्मिलित करने का प्रयास किया था। यह विफल रहता है, लेकिन मुझे यह पता लगाने में कठिनाई हो रही है कि क्यों। Google और MySQL फ़ोरम और दस्तावेज़ बहुत मदद नहीं कर रहे हैं।MySQL अनुमतियाँ समस्या - गैर-समस्या
नाकाम रहने क्वेरी इस तरह दिखता है (संक्षिप्तता और स्पष्टता के लिए छोटा कर दिया, नाम मासूम की रक्षा करने के लिए बदल):
CREATE TABLE `my_precious_table` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`somedata` varchar(20) NOT NULL,
`aTimeStamp` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id`,`aTimeStamp`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/opt/data/data2/data_foo/' INDEX DIRECTORY='/opt/data/data2/idx_foo/'
/*!50100 PARTITION BY RANGE (year(aTimeStamp)) SUBPARTITION BY HASH (TO_DAYS(aTimeStamp))
(PARTITION p0 VALUES LESS THAN (2007) (SUBPARTITION foo0 DATA DIRECTORY = '/opt/data/data2/data_foo' INDEX DIRECTORY = '/opt/data/data2/idx_foo' ENGINE = MyISAM),
PARTITION p1 VALUES LESS THAN (2008) (SUBPARTITION foo1 DATA DIRECTORY = '/opt/data/data2/data_foo' INDEX DIRECTORY = '/opt/data/data2/idx_foo' ENGINE = MyISAM),
PARTITION p2 VALUES LESS THAN (2009) (SUBPARTITION foo2 DATA DIRECTORY = '/opt/data/data2/data_foo' INDEX DIRECTORY = '/opt/data/data2/idx_foo' ENGINE = MyISAM),
PARTITION p3 VALUES LESS THAN MAXVALUE (SUBPARTITION foo3 DATA DIRECTORY = '/opt/data/data2/data_foo' INDEX DIRECTORY = '/opt/data/data2/idx_foo' ENGINE = MyISAM)) */;
त्रुटि है:
त्रुटि 1 (HY000): कर सकते हैं ' टी '/opt/data/data2/idx_foo/my_precious_table#P#p0#SP#foo0.MYI' (Errcode: 13) दायर करने के लिए बनाने के/लिखने
"/ फ़ाइल पर लिखने की नहीं बना सकता" देखा एक अनुमति मुद्दे की तरह मेरे लिए, लेकिन लक्षित फ़ोल्डरों पर अनुमतियाँ इस प्रकार देखो:
drwxrwxrwx 2 mysql mysql 4096 Dec 1 16:24 data_foo
drwxrwxrwx 2 mysql mysql 4096 Dec 1 16:25 idx_foo
किक के लिए, मैं जड़ तक chowning की कोशिश की है: जड़ और अपने आप को। इसने इस मुद्दे को ठीक नहीं किया।
स्रोत MySQL सर्वर संस्करण 5.1.22-आरसी-लॉग है। गंतव्य सर्वर 5.1.2 9-आरसी-समुदाय है। दोनों हाल ही में CentOS प्रतिष्ठानों पर चल रहे हैं।
संपादित करें: थोड़ा और शोध दिखाता है कि वास्तव में, त्रुटि त्रुटि त्रुटि है। लेकिन मैं इसे rwxrwxrwx
पर कैसे प्राप्त कर सकता हूं?
संपादित करें: बिल करविन का उत्कृष्ट सुझाव नहीं निकला। मैं रूट उपयोगकर्ता के रूप में काम कर रहा हूं, और सभी विशेषाधिकार झंडे सेट हैं।
संपादित करें: अलग-अलग विभाजन कार्यों के लिए डेटा निर्देशिका निर्दिष्ट किए बिना तालिका बनाना - लेकिन मुझे इन विभाजनों को एक बड़ी डिस्क पर रखना होगा जिस पर यह MySQL उदाहरण डिफ़ॉल्ट रूप से तालिकाओं को रखता है। और मैं केवल टेबल स्तर पर डेटा/इंडेक्स डायरेक्ट्री निर्दिष्ट नहीं कर सकता - यह MySQL के संस्करण में वैध नहीं है जिसका उपयोग मैं कर रहा हूं (5.1.2 9-आरसी-समुदाय)।
संपादित करें: अंत में उत्तर में आया, MySQL मेलिंग सूची और आंतरिक आईटी कर्मचारियों के लिए धन्यवाद। निचे देखो।
क्या आप सुनिश्चित हैं कि पथ सही है? –
हां। मैंने इसे एक से अधिक बार जांच लिया है। – bradheintz