तो यह एक बहुत ही जटिल समस्या है।
क्योंकि आपने जो वर्णन किया है (बहुत विस्तृत),इस समस्या के अभी भी कई संभावित कारण हैं।
प्रश्न: तो यहाँ कुछ प्रश्न आपके लिए संक्षेप में दिए गए हैं (मेरे अनुभव से):
- क्या आपका
MySQL not running
आपके पहले स्टार्टअप के दौरान हुआ (xampp start / xampp startmysql)? - लिनक्स में xampp स्थापित करने के बाद, क्या आपने MySQL कॉन्फ़िगरेशन (डिफ़ॉल्ट etc/my.cnf) को अनुकूलित किया है?
- यदि अनुकूलित किया गया हो क्या आपने डेटाबेस निर्देशिका को किसी भिन्न स्थान पर अनुकूलित किया है (डिफ़ॉल्ट/ऑप्ट/लैम्प/var/mysql)?
- यदि अनुकूलित नहीं है जैसा कि आपने उल्लेख किया है कि आपके पास mysql कमांड लाइन तक पहुंच है, क्या आपने SQL डेटाबेस का प्रयास किया है, या यदि डेटाबेस पहुंच योग्य भी नहीं था (जिसका अर्थ है कि mysql सर्वर, जिसे mysqld नाम दिया गया है, ठीक से शुरू नहीं हुआ)?
- क्या आपने व्यक्तिगत रूप से एक mysql डेटाबेस (डिफ़ॉल्ट bin/mysql_install_db) को इनिशियलाइज़/इंस्टॉल किया है?ठीक है, इन उपरोक्त प्रश्नों को एक बुनियादी समस्या निवारण विचार प्रदान करना चाहिए।
समाधान:
<मजबूत>1. त्रुटि लॉग समस्या
तो यह सबसे आसान समस्या होनी चाहिए, और यह हमें त्रुटि के कारणों को बेहतर ढंग से पहचानने में मदद कर सकती है।
चेक करें
a) MySQL कॉन्फ़िगरेशन (my.cnf) में आपका रनिंग यूजर क्या है? यह [mysqld] user=... (डिफ़ॉल्ट mysql) के तहत एक पैरामीटर होना चाहिए, हम मानते हैं कि हमारा कॉन्फ़िगरेशन mysql
पर सेट है।
बी) क्या आपके पास टर्मिनल कमांड id -u mysql
. को चलाने के लिए उपयोगकर्ता का खाता है , अगर यह एक आईडी नंबर देता है, तो खाता मौजूद है, अन्यथा यह आपको no such user
बताएगा . आपको इस उपयोगकर्ता को mysql सर्वर चलाने और त्रुटि लॉग लिखने की आवश्यकता है (अपने टर्मिनल रिकॉर्ड के दूसरे भाग को देखकर, आपका खाता मौजूद होना चाहिए)
सी) अपने MySQL कॉन्फ़िगरेशन (my.cnf) त्रुटि लॉग स्थान की जांच करें, यह पैरामीटर के रूप में [mysqld] के अंतर्गत होना चाहिए लॉग-एरर =... यदि यह नहीं लिखा है, तो इसमें जोड़ें ([mysqld] के अंतर्गत होना चाहिए)।
डी) अपने लॉग पूर्ण पथ की प्रत्येक निर्देशिका की जांच करें (उदाहरण के लिए /var/log/mysql/error.log)
- /var में
read
होना चाहिए औरexecute
mysql उपयोगकर्ता के लिए प्राधिकरण (जो कम से कम ****** r-x है) पास फ़ाइल (निष्पादित) प्राधिकरण बनाएं - /var/log में
read
होना चाहिए औरexecute
mysql उपयोगकर्ता के लिए प्राधिकरण (जो कम से कम ****** r-x है) पास फ़ाइल (निष्पादित) प्राधिकरण बनाएं - /var/log/mysql में
read
होना चाहिए ,write
औरexecute
mysql उपयोगकर्ता के लिए प्राधिकरण (जो ******rwx है) फ़ाइल प्राधिकरण बनाएं और लिखें
ताकि आपकी error.log फ़ाइल यहां बनाई जा सके, यदि अभी भी काम नहीं करता है, तो इसे मैन्युअल रूप से स्वामी के साथ mysql, समूह के रूप में mysql और 660 के अधिकार के साथ बनाने का प्रयास करें।
<मजबूत>2. MySQL सर्वर चालू स्थिति
इसे जांचने के कई तरीके हैं
a) mysql.server status
करने के लिए mysql.server (डिफ़ॉल्ट bin/mysql.server) का उपयोग करें आज्ञा। यदि आपका MySQL सर्वर चल रहा है, तो उसे SUCCESS दिखाना चाहिए! मारियाडीबी चल रहा है।
बी) top
का उपयोग करें सेवा चल रही है या नहीं, यह जांचने के लिए आदेश दें, या top | grep "mysqld"
. mysqld
और mysqld_safe
चाहिए।
सी) mysql कमांड लाइन में लॉगिन करें जैसे आपने टर्मिनल रिकॉर्ड 4 में किया था (यह काम करता है) और कमांड SHOW DATABASES;
यह भी काम करना चाहिए।
<मजबूत>3. अनुकूलित डेटाबेस स्थान के कारण Xampp mysql की स्थिति नहीं चल रही है यह बहुत गहरी समस्या है, क्योंकि मैंने पुष्टि की है कि MySQL सर्वर ठीक से चल रहा है।
मैंने किया
[[email protected] ~]# /opt/lampp/xampp status
Version: XAMPP for Linux 7.4.1
Apache is running.
MySQL is not running.
ProFTPD is running.
[[email protected] ~]# /opt/lampp/bin/mysql.server status
SUCCESS! MariaDB running (xxxx)
तो इससे पता चलता है कि xampp गलत तरीके से सेवा की स्थिति प्राप्त कर रहा है (जैसे अन्य पोस्ट MySQL डेटाबेस टर्मिनल पर शुरू होता है लेकिन XAMPP पर नहीं )
मैं विस्तार से पता लगा सकता हूं कि xampp कैसे काम करता है, लेकिन /opt/lampp/xampp
में स्क्रिप्ट फ़ाइल में, मैंने पाया /opt/lampp/share/xampp/status
और /opt/lampp/share/statusraw
इसमें आगे बढ़ें (दोनों /opt/lampp/share/xampp/status
और /opt/lampp/share/statusraw
फ़ाइल),
/opt/lampp/var/mysql/` /bin/hostname`.pid mysqld
चूंकि मेरा डेटाबेस स्थानीय निर्देशिका में अनुकूलित किया गया था, इसका मतलब है कि पिड फ़ाइल /opt/lampp/var/mysql
में नहीं होगी। , और यह स्थिति हमेशा गलत तरीके से वापस आएगी।
इसलिए इसे मेरे अपने डेटाबेस पिड स्थान में बदलने से समस्या हल हो गई।