2011-10-05 9 views
21

MySQL 5.1.54 उबंटू 11.04बिन लॉग निर्देशिका बदलने की कोशिश

I'am रूप my.conf में बिन लॉग निर्देशिका बदलने की कोशिश:

[mysqld] 
log_bin=/home/developer/logs/mysql/mysql-bin.log 

इस के बाद बदल जाता है MySQL सर्वर त्रुटि के साथ शुरू नहीं कर सकते हैं:

/usr/sbin/mysqld: File '/home/developer/logs/mysql/mysql-bin.index' 
not found (Errcode: 13) 
111005 12:47:58 [ERROR] Aborting 

निर्देशिका/घर/डेवलपर/लॉग/mysql के लिए अनुमति/0777

012 है

क्या चल रहा है?

उत्तर

19

सामान्य रूप से, समाधान सरल था लेकिन स्पष्ट नहीं था: इसे एपर्मर सेटिंग्स संपादित करने की आवश्यकता है, मैंने अभी /etc/apparmor.d/ में जोड़ा है usr.sbin.mysqld पथ के साथ एक नया स्ट्रिंग निर्देशिका लक्षित करने के लिए: /घर/डेवलपर/लॉग/* rw

यह काम करता है!

+3

apparmor.d मेरे सर्वर में उपलब्ध नहीं है। – DharanBro

0

क्या आपके उपयोगकर्ता के पास सभी ऊपरी निर्देशिकाओं तक पहुंच है? विशेष में,/घर/डेवलपर/निर्देशिका? Mysql सर्वर खाते से लॉग इन करने का प्रयास करें और लॉग फ़ाइल को स्पर्श करें।

+0

मैंने/var/log/mysql निर्देशिका से अनुमतियां कॉपी की हैं। कोई परिणाम नहीं। – solo117

+0

और यदि आप mysqld उपयोगकर्ता के लिए su और निर्देशिका तक पहुंचने का प्रयास करते हैं तो क्या होता है? – Andreas

+0

मैं "sudo -u mysql touch /home/developer/logs/test.txt" चलाता हूं, यह सफलतापूर्वक एक फ़ाइल – solo117

0

मुझे एक ही समस्या थी जब मैं डाटाडाइर परिवर्तनीय को ताजा इंस्टॉल के दौरान बदलने की कोशिश कर रहा था। मेरे मामले में समाधान पहली बार लॉग-बिन अक्षम के साथ शुरू करना था। इसके बाद मैं इसे नए पथ का उपयोग करके फिर से सक्षम करने में सक्षम था ...

+0

आपका क्या मतलब है? स्टॉप सर्वर -> log_bin अक्षम करें -> सर्वर प्रारंभ करें -> ... सर्वर रोकें-> log_bin सक्षम करें -> server_ प्रारंभ करें ??? दुर्भाग्य से यह मेरे लिए काम नहीं किया – solo117

+0

बिल्कुल नहीं। क्या आप डाटादिर की स्थिति भी बदलते हैं? यदि हां, तो मैंने इसे काम करने के लिए यह किया है: कॉन्फ़िगरेशन फ़ाइल में लॉग-बिन अक्षम करें, mysql_install_db कस्टमाइज़ किए गए कॉन्फ़िगरेशन फ़ाइल के साथ, इंस्टॉलेशन के अंत में mysqld इंस्टॉल स्क्रिप्ट द्वारा प्रारंभ किया गया है। उसके बाद: रोकें, लॉग-बिन सक्षम करें, प्रारंभ करें। –

+0

यह ध्यान दिया जाना चाहिए कि यह एक नए सेटअप के दौरान था। यदि आपके पास मौजूदा डेटाबेस है, तो आपकी स्थिति अलग है। –

3

सेलिनक्स इस नियम को लागू कर सकता है कि MySQL डेटाबेस फ़ाइलों को/var/lib/mysql में रहना है और कहीं और नहीं। यदि आप mysql को दूसरी निर्देशिका में ले जाते हैं तो selinux (selinux = 0 कर्नेल बूट कमांड लाइन पर 0) को बंद करने का प्रयास करें।

19

/usr/sbin/mysqld: File '/usr/binlogs/mysql-bin.index' not found (Errcode: 13)

यह साथ मेरे लिए काम किया: बस किसी को जो एक ऐसी ही समस्या में चलाता है के लिए एक FYI करें के रूप में

chown -R mysql:mysql /usr/binlogs/

+0

MySQL बिन लॉग के आकस्मिक विलोपन के बाद यह सबसे स्पष्ट समाधान है। उत्तम ! – Maxx

8

, समाधान मूलतः एक ही है, लेकिन इस समस्या का कारण स्पष्ट नहीं है ।

डेबियन wheezy को अपग्रेड करने के बाद, mysql शुरू करने में विफल रहा।

किसी तरह, मैं इस प्रकार ऊपर फायरिंग से सर्वर को रोकने पता नहीं कैसे, /var/lib/mysql में फ़ाइलों में से कुछ पर अनुमतियों mysql उपयोगकर्ता के स्वामित्व में नहीं किया गया है,।

chown -R mysql.mysql /var/lib/mysql इसे ठीक किया गया।

apt-get update 

apt-get upgrade 

कुछ डेबियन उन्नयन और मैनुअल हस्तक्षेप की जरूरत थी दौरान hinky मिला:

मैं गंदगी mysql के लिए कुछ भी नहीं किया है, यह एक मानक था।

3

विकल्प 1: नए स्थान पर .index फ़ाइल सहित

  1. service mysqld stop

  2. कॉपी लॉग फाइल।/etc/my.cnf फ़ाइल में

    cp mysql-bin.log* /path/to/binlogs 
    cp mysql-bin.index /path/to/binlogs 
    
  3. क्या परिवर्तन।

    [mysqld] 
    log-bin=/path/to/newdirecory/mysql-bin 
    
    log-bin-index=/path/to/newdirectory/mysql-bin.index 
    
  4. service mysqld start

विकल्प 2:

mysqlbinlogmove --binlog-dir=/server/data /new/binlog_dir 
1

आप इस प्रकार निर्देशिका के लिए उपयोगकर्ता अनुमति देने के लिए की जरूरत है:

उपयोग इस utiltiy द्विआधारी लॉग स्थानांतरित करने के लिए:

chown -R mysql:mysql /home/developer/logs/mysql/ 
0

आपका config गलत है:

log_bin=/home/developer/logs/mysql/mysql-bin.log 

आप "my.cnf" में प्रतिकृति विन्यास के दौरान बजाय

log-bin=/home/developer/logs/mysql/mysql-bin.log 
2

का प्रयोग करेंगे फ़ाइल का उल्लेख करने की जरूरत है

सर्वर आईडी = 1 log_bin =/var/log/mysql/mysql-bin.log

आप अपनी खुद की निर्देशिका बना सकते हैं और अनुमति दे सकते हैं। बनाने निर्देशिका "mysql"/var में/log/

chmod 777 mysql

इस 5.7

0

तुम भी my.cnf फ़ाइल जो लॉग स्थान को परिभाषित करने में लाइन टिप्पणी कर सकते हैं MySQL संस्करण के साथ लागू है, इसलिए mysql पर विचार करेगी इसका डिफ़ॉल्ट पथ और ठीक से शुरू होगा।

log-bin = /var/log/mysql/mysql-bin.log ->#log-bin = /var/log/mysql/mysql-bin.log

यदि आप लॉग के बारे में ज्यादा चिंतित नहीं हैं तो यह सहायक होगा।