Original post: http://anothermysqldba.blogspot.com/2014/07/mysql-ubuntu-mysqld-does-not-have.html
तो आज मैं मैं कुछ तालिकाओं ठीक हो सकता है तो बैकअप से एक डाटाबेस बहाल करने की जरूरत के लिए होता है. मैं पोर्ट 3306 के माध्यम से चल रहा है वह उत्पादन डेटाबेस छोड़ दिया है, जबकि मैं बंदरगाह 3307 के माध्यम से बैकअप की स्थापना की.
मैं एक mysql_restore निर्देशिका में 3307 पोर्ट के माध्यम से एक और संस्करण शुरू करने का प्रयास किया, लेकिन फिर भी, जब मैं कुछ त्रुटियों में भाग गया ....
तो मैं पहले, निर्देशिका पर जाँच की अनुमति यह 700 पर सेट किया और MySQL के स्वामित्व में था कि यह सुनिश्चित किया. मैं भी डेटा निर्देशिका के अंदर निर्देशिकाओं 700 करने के लिए सेट और MySQL के स्वामित्व में था कि यह सुनिश्चित किया. फाइल के बाकी सभी 600 (आरडब्ल्यू आरडब्ल्यू ----) के लिए निर्धारित किया है. बस मैं भी डिस्क पूर्ण नहीं था कि यह सुनिश्चित किया सुरक्षित करने के लिए.
तो त्रुटि प्रवेश की अनुमति मुद्दों से पता चलता है लेकिन पहली नज़र में सभी अनुमतियाँ सही हैं. तो यह क्या है?
मैं RHEL, या संबंधित शाखाओं पर था तो, मैं SELinux के बारे में सोचना होगा. यह किसी भी तरह यह अवरुद्ध हो गया था.
Ubuntu निकल रहा है इस मामले में समीक्षा करने की जरूरत है.
डिफ़ॉल्ट "var / lib / MySQL" संबोधित किया जा रहा है कि नोटिस. मैं बनाया बहाल निर्देशिका हालांकि नहीं था. इसलिए कि और AppArmor का पुनरारंभ जोड़कर मैं तो सफलतापूर्वक MySQL शुरू करने में सक्षम था.
समीक्षा के लिए अतिरिक्त यूआरएल अगर जरूरत:
तो आज मैं मैं कुछ तालिकाओं ठीक हो सकता है तो बैकअप से एक डाटाबेस बहाल करने की जरूरत के लिए होता है. मैं पोर्ट 3306 के माध्यम से चल रहा है वह उत्पादन डेटाबेस छोड़ दिया है, जबकि मैं बंदरगाह 3307 के माध्यम से बैकअप की स्थापना की.
मैं एक mysql_restore निर्देशिका में 3307 पोर्ट के माध्यम से एक और संस्करण शुरू करने का प्रयास किया, लेकिन फिर भी, जब मैं कुछ त्रुटियों में भाग गया ....
/usr/bin/mysqld_safe --defaults-file=/etc/my_3307.cnf
[Warning] Can't create test file /var/lib/mysql_restore/localhost.lower-test
[Warning] Can't create test file /var/lib/mysql_restore/localhost.lower-test
Can't find file: './mysql/plugin.frm' (errno: 13)
InnoDB: Completed initialization of buffer pool
InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.
# perror 13
OS error code 13: Permission denied
तो मैं पहले, निर्देशिका पर जाँच की अनुमति यह 700 पर सेट किया और MySQL के स्वामित्व में था कि यह सुनिश्चित किया. मैं भी डेटा निर्देशिका के अंदर निर्देशिकाओं 700 करने के लिए सेट और MySQL के स्वामित्व में था कि यह सुनिश्चित किया. फाइल के बाकी सभी 600 (आरडब्ल्यू आरडब्ल्यू ----) के लिए निर्धारित किया है. बस मैं भी डिस्क पूर्ण नहीं था कि यह सुनिश्चित किया सुरक्षित करने के लिए.
तो त्रुटि प्रवेश की अनुमति मुद्दों से पता चलता है लेकिन पहली नज़र में सभी अनुमतियाँ सही हैं. तो यह क्या है?
मैं RHEL, या संबंधित शाखाओं पर था तो, मैं SELinux के बारे में सोचना होगा. यह किसी भी तरह यह अवरुद्ध हो गया था.
Ubuntu निकल रहा है इस मामले में समीक्षा करने की जरूरत है.
# cat /etc/apparmor.d/usr.sbin.mysqld
...
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,
...
डिफ़ॉल्ट "var / lib / MySQL" संबोधित किया जा रहा है कि नोटिस. मैं बनाया बहाल निर्देशिका हालांकि नहीं था. इसलिए कि और AppArmor का पुनरारंभ जोड़कर मैं तो सफलतापूर्वक MySQL शुरू करने में सक्षम था.
# vi /etc/apparmor.d/usr.sbin.mysqld
...
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,
/var/lib/mysql_restore/ r,
/var/lib/mysql_restore/** rwk,
...
/etc/init.d/apparmor {start|stop|restart|reload|force-reload|status|recache}
/var/lib/mysql_restore# /etc/init.d/apparmor restart
...
/usr/bin/mysqld_safe --defaults-file=/etc/my_3307.cnf
...
# mysql -P 3307 --socket=/var/lib/mysql_restore/mysqld_3307.sock
समीक्षा के लिए अतिरिक्त यूआरएल अगर जरूरत:
कोई टिप्पणी नहीं:
एक टिप्पणी भेजें