AppArmor के कारण MySQL प्रारंभ नहीं होगा?


30

मैं Kubuntu 16.04 पर mysql-server-5.7 स्थापित करने की कोशिश कर रहा हूं, लेकिन मुझे परेशानी हो रही है।

sudo apt install mysql-server निम्न आउटपुट देता है।

Setting up mysql-server-5.7 (5.7.18-0ubuntu0.16.04.1) ...
Renaming removed key_buffer and myisam-recover options (if present)
Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.
invoke-rc.d: initscript mysql, action "start" failed.
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: activating (auto-restart) (Result: exit-code) since ons 2017-05-17 09:48:39 CEST; 10ms ago
  Process: 13622 ExecStartPost=/usr/share/mysql/mysql-systemd-start post (code=exited, status=0/SUCCESS)
  Process: 13621 ExecStart=/usr/sbin/mysqld (code=exited, status=2)
  Process: 13612 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
 Main PID: 13621 (code=exited, status=2)

maj 17 09:48:39 anis systemd[1]: Failed to start MySQL Community Server.
maj 17 09:48:39 anis systemd[1]: mysql.service: Unit entered failed state.
maj 17 09:48:39 anis systemd[1]: mysql.service: Failed with result 'exit-code'.
dpkg: error processing package mysql-server-5.7 (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of mysql-server:
 mysql-server depends on mysql-server-5.7; however:
  Package mysql-server-5.7 is not configured yet.

dpkg: error processing package mysql-server (--configure):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 mysql-server-5.7
 mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)

और जब journalctl -xeमैं चलाकर समस्या का निवारण करने की कोशिश कर रहा हूं तो मुझे निम्न जैसा आउटपुट मिलता है, जो यह दर्शाता है कि AppArmor मुझे परेशानी दे रहा है।

maj 17 09:53:14 anis systemd[1]: Starting MySQL Community Server...
-- Subject: Unit mysql.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit mysql.service has begun starting up.
maj 17 09:53:14 anis audit[14767]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/14767/status" pid=14767 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=124 ouid=124
maj 17 09:53:14 anis audit[14767]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/sys/devices/system/node/" pid=14767 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=124 ouid=0
maj 17 09:53:14 anis kernel: audit: type=1400 audit(1495007594.314:240): apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/14767/status" pid=14767 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=124 ouid=124
maj 17 09:53:14 anis kernel: audit: type=1400 audit(1495007594.314:241): apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/sys/devices/system/node/" pid=14767 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=124 ouid=0
maj 17 09:53:14 anis kernel: audit: type=1400 audit(1495007594.314:242): apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/14767/status" pid=14767 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=124 ouid=124
maj 17 09:53:14 anis audit[14767]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/14767/status" pid=14767 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=124 ouid=124
maj 17 09:53:14 anis audit[14767]: AVC apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/14767/task/14767/mem" pid=14767 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=124 ouid=124
maj 17 09:53:14 anis kernel: audit: type=1400 audit(1495007594.658:243): apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/14767/task/14767/mem" pid=14767 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=124 ouid=124
maj 17 09:53:14 anis systemd[1]: mysql.service: Main process exited, code=exited, status=2/INVALIDARGUMENT

मैं इस मुद्दे को हल करने के बारे में कैसे जा सकता हूं?


6
भविष्य के पाठकों के लिए ध्यान दें: मूल्यांकित इनकार संदेश केवल चेतावनी है, और MySQL संभवतः एक अलग कारण से बाहर निकल रहा है - देखें /var/log/mysql/error.log। MySQL अभी भी चलाने में सक्षम होना चाहिए, भले ही वह ऊपर / proc और / sys फाइलों तक नहीं पहुंच सके।
सिस्टमपारॉक्स

सुनिश्चित करें कि आपकी डिस्क पूर्ण नहीं है।
बुटिक बटुक

जवाबों:


31

MySQL को उन फाइलों तक पहुंचने देने के लिए आपको अपने एपर्मर कॉन्फ़िगरेशन को संपादित करने की आवश्यकता है। लॉग संदेश आपको बता रहे हैं कि /usr/sbin/mysqldपढ़ने की जरूरत है ( r) खोलने के लिए पहुंच /proc/14767/status, /sys/devices/system/node/(स्लैश को पीछे करना क्योंकि यह निर्देशिका पढ़ना चाहता है), और /proc/14767/task/14767/mem। संपादित करने के लिए फ़ाइल है /etc/apparmor.d/usr.sbin.mysqld

मेरे मामले में मैंने इन पंक्तियों को बीच में कहीं जोड़कर समस्या को हल किया (प्रत्येक के सामने दो रिक्त स्थान के साथ):

  /proc/*/status r,
  /sys/devices/system/node/ r,
  /sys/devices/system/node/node0/meminfo r,

(दूसरी पंक्ति के लिए अनुगामी स्लैश पर ध्यान दें।)

ऐसा करने के बाद, MySQL शुरू करने का प्रयास करें, और यदि आपको अधिक त्रुटियां मिलती हैं, तो उन फ़ाइलों को भी जोड़ें और फिर से प्रयास करें।

यहाँ एक जवाब है जो मैंने इस समस्या को कहीं और दिया है।


6
किसी को apparmourमैन्युअल रूप से स्थापित करने के लिए सेटिंग्स को संपादित करने की आवश्यकता क्यों होगी mysql, अगर ऐसा है तो समस्या है।
जॉर्ज उडोसन

2
मैं @George से सहमत हूँ! एक ही मुद्दे को साझा करने वाले अन्य लोगों के साथ एक लॉन्चपैड की रिपोर्ट है: बग्सलांचपडॉट.नेट / यूबंटु / +सोर्स / mysql-5.7 / +bug / 1610765 (अधिकांश टिप्पणीकार यहां एक ही लॉग संदेश की रिपोर्ट करते हैं, हालांकि मूल संस्करण अलग थे)। )
पॉल ए जंगविर्थ

3
/proc/*/status rअनावश्यक रूप से खुला है। वर्तमान prid के लिए Apparmor के पास मैचर्स हैं, इसलिए आप इसे इस तरह से कर सकते हैं: यदि आप NUMA समर्थन / एक से अधिक सीपीयू मशीन के संपर्क में हैं, तो आप @{PROC}/@{pid}/status r, वाइल्डकार्ड एक्सेस भी कर सकते हैं node*/meminfo
मार्टिन फुट

3
इसके बाद अप्पर्मर को पुनः आरंभ करने की आवश्यकता हो सकती है: sudo service apparmor restart
Zbyszek

1
यह /etc/apparmor.d/local/user.sbin/mysqldडिफ़ॉल्ट प्रोफ़ाइल अपडेट के साथ टकराव से बचने के लिए इसे डालने के लिए समझ में आ सकता है । यह पहले से ही डिफ़ॉल्ट प्रोफ़ाइल में शामिल है
Marat

6

यह इस तरह हो सकता है: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=739846 इसलिए उपयोग करने का प्रयास करें

echo "exit 0" >> /etc/init.d/mysql
dpkg --configure -a

यदि यह उपयोग में मदद नहीं कर रहा है:

sudo apt-get purge mysql-server mysql-client mysql-common mysql-server-5.5
sudo apt-get install mysql-server

पूरी तरह से अपने mysql को हटाने और चेतावनी को पुनर्स्थापित करने के लिए: यदि आपके पास कोई डेटाबेस है तो उन्हें हटा दिया जाएगा।


सलाह के लिये धन्यवाद! मेरा /etc/init.d/mysql पहले exit 0से ही अंत में है। मैंने mysql-server को शुद्ध और पुन: स्थापित करने की कोशिश की है, जिसने मदद नहीं की। मैंने सिर्फ mysql-common को पुन: स्थापित (बिना शुद्ध किए) करने की कोशिश की, जिससे भी मदद नहीं मिली। इसे शुद्ध करने के लिए मुझे बहुत सारे पैकेजों की स्थापना रद्द करनी होगी जो इस पर निर्भर हैं, जिनसे मैं थोड़ा डरता हूं।
सुपरनॉर्मल

मैंने अभी sudo apt remove --purge mysql-*सभी MySQL चीजों को पूरी तरह से हटाने के लिए किया था (मेरे पास संस्करण 5.7 है), और फिर किया sudo apt install akonadi-server mysql-client mysql-server, लेकिन परिणाम अभी भी वही है। मुझे अब भी वही त्रुटि संदेश journalctl -xeमिलता है और ऊपर दिए गए रूप में AppArmor समस्या को इंगित करता है।
अलौकिक

1

मैंने इस मुद्दे को इसके साथ हल किया;

/Etc/apparmor.d/local/usr.sbin.mysqld संपादित करें

इन पंक्तियों को जोड़ें;

/data/ r,
/data/** rwk,

पुनःप्राप्तकर्ता सेवा पुनः लोड करें

#sudo service apparmor reload

0

मेरे मामले में उबंटू 16.04 पर mysql-server-5.7 को स्थापित करने की कोशिश कर रहा है, इसके बाद के संस्करण का उपयोग करने के बाद काम किया गया था:

  1. रन sudo apt install mysql-server
  2. उपरोक्त सटीक त्रुटि का निरीक्षण करें
  3. रीबूट
  4. sudo apt install mysql-serverस्थापना जारी रखने के लिए फिर से चलाएँ

स्थापन पूर्ण हुआ।


ठीक है, लेकिन यह अभी भी मेरे लिए काम नहीं करता है, दुर्भाग्य से।
सुपरनॉर्मल

0
  1. stop mysql-server
  2. rm /var/lib/mysql/ib_logfile*
  3. restart mysql

1
कृपया कोड के लिए कोड मार्कअप का उपयोग करें {}, यह इसे और अधिक पठनीय बनाता है। आप अपना उत्तर संपादित कर सकते हैं।
रॉबर्ट रिडेल

मैंने अपनी ib_logfile*फ़ाइलों का नाम बदला और किया apt upgradeलेकिन जब apt को mysql मिला, तो मुझे निम्न आउटपुट मिला mysql_upgrade: [ERROR] 1812: Tablespace is missing for table mysql.plugin
Supernormal

महान, मैंने पहले इसे टारबॉल करने की कोशिश की, mysql ने टारबॉल को हटा दिया, अब यह एक अलग कारण के लिए शुरू करने में विफल हो रहा है। उबुन्टु 18.04। YMMV
चैम एलियाह
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.