MySQL शुरू नहीं होगा!


12

कमांड लाइन से MySQL में लॉग इन करने का प्रयास करते समय मुझे यह त्रुटि आ रही है:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

मुझे लगता है कि इसका मतलब है कि MySQL अभी तक शुरू नहीं किया गया है। इसलिए मैं इसे शुरू करने की कोशिश करता हूं:

sudo /etc/init.d/mysql start

और मुझे यह संदेश मिला:

* Starting MySQL database server mysqld [fail] 

मैं कहां से देखूं / शुरू करने के लिए मैं MySQL प्राप्त करने के लिए क्या करूं? मैं Ubuntu 8.04 चला रहा हूं और apt-get के माध्यम से MySQL स्थापित किया है। मैं इसे शुरू करने में सक्षम रहा हूं और इसे एक-दो बार इस्तेमाल किया है इसलिए मुझे नहीं पता कि इसने काम करना क्यों बंद कर दिया।

अपडेट: जब sudo /etc/init.d/mysql स्टेटस चल रहा हो तो मुझे संदेश मिलता है:

* MySQL is stopped.

अपडेट # 2: मेरी लॉग फाइलें (/var/log/mysql.log & /var/log/mysql.err) खाली हैं (यदि ये सही हैं)


क्या होता है जब आप sudo /etc/init.d/mysql स्टेटस
emgee

जवाबों:


10

उबंटू 12.04 पर मुझे /etc/mysql/my.cnf फाइल में बफर साइज बदलने के बाद भी यही समस्या थी, मुझे लगता है कि मैं थोड़ा दूर चला गया। वैसे भी उन्हें डिफ़ॉल्ट सेटिंग में बदलने की कोशिश करने के बाद भी MySQL अभी भी शुरू नहीं होगा।

मैंने इसे हल करने के लिए कई अलग-अलग तरीकों की कोशिश की, मैंने नोटिस किया कि /var/run/mysql/mysql.sock गायब था। यह एक समस्या हो सकती है इसलिए आप वहां जांच कर सकते हैं और यदि इसकी अनुपलब्धता को आप निम्न कार्य द्वारा प्रतिस्थापित कर सकते हैं:

sudo touch /var/run/mysql/mysql.sock
sudo chown mysql /var/run/mysql/mysql.sock

यह मेरे लिए समस्या को ठीक नहीं किया ! लेकिन यह कुछ के लिए हो सकता है।

मुझे जो करना था, वह पूरी तरह से MySQL को पुनर्स्थापित कर रहा था, ऐसा करने के लिए आपको sudo कमांड का उपयोग करना होगा। MySQL को पूरी तरह से हटाने और पुन: स्थापित करने के चरण इस प्रकार हैं:

MySQL निकालें

sudo apt-get --purge remove mysql-server
sudo apt-get --purge remove mysql-client
sudo apt-get --purge remove mysql-common

वैकल्पिक रूप से आप, योग्यता का उपयोग कर सकते की जगह apt-get --purge साथ योग्यता

साफ - सफाई

sudo apt-get autoremove
sudo apt-get autoclean

MySQL dir निकालें

sudo rm -rf /etc/mysql

MySQL स्थापित करें

sudo apt-get install mysql-server mysql-client

MySQL अब चलना चाहिए, आप इसे निम्न करके देख सकते हैं:

sudo service mysql status

तुम्हे देखना चाहिए

mysql start/running, process xxxxx

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

नोट: यदि आपके पास php के लिए mysql एक्सटेंशन था, तो आपको इसे भी पुनः इंस्टॉल करना होगा।

sudo apt-get install php5-mysql

यह मेरे लिए काम करता है, लेकिन मुझे इसे बदलना पड़ा: sudo touch /var/run/mysqld/mysqld.sockऔर मुझे इसका पता अंत से लगा /var/log/syslog (उदाहरण के लिए mysqld में बदला)
प्रोग्रामर

यह है /var/run/mysqldया /var/run/mysql?
CMCDragonkai

जुर्राब फ़ाइल को छूना एक बुरा विचार है - आपने एक नियमित फ़ाइल बनाई है, जब इसकी वास्तव में एक सॉकेट है, जो एक विशेष प्रकार की फ़ाइल है।
क्राइगी

3

चेतावनी: यह खतरनाक है, आपका mysql सुरक्षित नहीं रहेगा और कोई भी आपकी तालिकाओं को जोड़ने, संपादित करने आदि में सक्षम होगा, इस आदेश के साथ चल रहे अपने सर्वर को न छोड़ें।

इसे सुरक्षित मोड में शुरू करने का प्रयास करें: /usr/local/mysql/bin/safe_mysqld --user=mysql --skip-grant-tables

यदि यह काम करता है तो आपकी information_schema या mysql table (s) के साथ समस्याएं हो सकती हैं। अगर यह किसी चीज से काम नहीं करता है तो आपके इंस्टॉल में कुछ गड़बड़ है।


1
यह अच्छा है, यह आपको syslog में विस्तृत त्रुटियां देता है। कमांड बदल गया है, उबंटू 12.04 पर यह हैsudo /usr/bin/mysqld_safe --user=mysql --skip-grant-tables
newz2000

3

अन्य उत्तरों की तरह अपनी लॉग फाइल की जाँच करें। इसके अलावा, जांच लें कि आपके पास पर्याप्त (या कोई डिस्क-स्पेस) है। MySQL एक खाली विभाजन पर इस तरह से व्यवहार कर सकता है।

df -h

यदि ऐसा नहीं है, तो सर्वर को डीबग करने पर MySQL के डॉक्स देखें । उनका myisamchk(यदि आप MyISAM का उपयोग कर रहे हैं) विशेष रूप से उपयोगी है।


3

मुझे हाल ही में ubuntu को अपडेट करने के बाद भी यह समस्या आई। अभी तक निश्चित नहीं है कि वास्तव में समस्या क्या है। एक बिगड़ैल जिसने क्षण भर के लिए mysql को चलाने के लिए काम किया, हालांकि यह करना था:

sudo aa-complain /etc/apparmor.d/*mysql*

यह काम करता है, यह दर्शाता है कि प्रशिक्षक ने mysql को चलने से रोक दिया है, और यह बताते हुए कि लॉग शायद खाली भी हैं: mysql को चलाने की अनुमति नहीं थी।

यह एक अजीब मुद्दा बना हुआ है, क्योंकि अभी तक इसमें कोई "शिकायत" नहीं है /var/log/apparmor, और kern.log में केवल ऑडिट प्रविष्टि प्रोफ़ाइल से शिकायत मोड में जा रही है।

ध्यान दें कि ऐसा करने में मैंने एक (खाली) /etc/apparmor.d/local/usr.sbin.mysqlफ़ाइल भी जोड़ी है क्योंकि इस फ़ाइल को नहीं ढूंढने के बारे में शिकायत की गई शिकायत की गई थी।


आपका बहुत बहुत धन्यवाद! मेरे बालों को बाहर निकालने के करीब पहुंचने के बाद, आखिरकार इसे ठीक कर लिया।
ओलाथे

3

मेरी 512MB डिजिटल ओशन ड्रॉपलेट के साथ भी यही समस्या थी।

यह स्मृति की अपर्याप्तता के कारण है।

एक तत्काल समाधान अन्य सेवाओं को पुनः आरंभ करने के लिए है जैसे कि स्मृति को मुक्त करने के लिए।

sudo service apache2 restart

फिर उम्मीद है, पर्याप्त स्मृति के साथ, आपको mysql को पुनरारंभ करने में सक्षम होना चाहिए

sudo service mysql restart

दीर्घकालिक समाधान या तो अधिक रैम प्राप्त करना है, या स्वैप मेमोरी बनाना है


2

अपनी लॉग फ़ाइलों पर एक नज़र डालें। कम से कम डेबियन पर, आपको mysql * लॉग इन मिलता है /var/log


3
mysql.err और mysql.log दोनों खाली हैं
एंड्रयू

1

यह एक ही समस्या थी, पता चला समाधान चेहरे में मुझे घूर रहा था। ड्राइव भरी हुई थी। आपको कोई लॉग नहीं मिलता है क्योंकि उन्हें लिखने के लिए कोई भी नहीं है .....


0

इसी समस्या ने मुझे उबंटू 12.04 डिजिटल ओशन वीपीएस के लिए उम्र के लिए त्रस्त कर दिया जिसमें mysql 5.6 एक पीपीए से स्थापित था। लक्षण यह थे कि mysql.sock फ़ाइल को /var/run/mysqld/mysql.sockहटा दिया जाएगा, लेकिन कभी दोबारा नहीं बनाया जाएगा, इसलिए मुझे हर बार mysql अपडेट होने या सर्वर रिबूट होने के बाद मैन्युअल रूप से निम्न कमांड चलाने की आवश्यकता थी:

sudo touch /var/run/mysqld/mysql.sock
sudo chown mysql /var/run/mysqld/mysql.sock

यह काइल सी के जवाब (mysql के बजाय mysqld को छोड़कर) से था। अंत में मैंने mysql 5.5 को डाउनग्रेड किया जो तब आता है जब आप सामान्य रूप से एक sudo apt-get install mysql-serverकमांड करते हैं। हालाँकि यह सीधे आगे नहीं था इसलिए यहाँ मुझे क्या करना है:

# Manually get mysql running if it is not
sudo touch /var/run/mysqld/mysql.sock
sudo chown mysql /var/run/mysqld/mysql.sock
sudo service mysql start

# take a dump of all databases 
# we are going to remove the mysql files so don't skip this)
mysqldump -u root -p > all-databases.sql

# Completely remove mysql
sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo apt-get autoremove
sudo apt-get autoclean

# Remove mysql 5.6 from debs (otherwise it will reinstall 5.6)
rm /etc/apt/sources.list.d/ondrej-(mysql something please check)

# remove a flag that would prevent the installation
# because it is seen as a downgrade
sudo rm /var/lib/mysql/debian-5.6.flag

# I had to remove the mysql files as well
# reference http://ubuntuforums.org/showthread.php?t=1998260&page=3
rm -rf /var/lib/mysql
rm -rf /etc/mysql*

# Install mysql
sudo apt-get install mysql-server mysql-client mysql-common php5-mysql

# manually update the all-databases.sql file and 
# remove all STATS_PERSISTENT clauses on table creation statments

# re import the databses
mysql -u root -p < all-databases.sql

# restart apache
sudo service apache2 restart

# at this point my wordpress site stated error connecting to database.
# This was resolved by logging into mysql and running:
FLUSH PRIVILEGES

उम्मीद है कि यह किसी और को एक ही दर्द होने में मदद करेगा।


0

आंकड़ा यह दूसरों की मदद कर सकता है ... तो यहाँ यह है।

मैं अपने mysql 5.5 (ubuntu के डिफ़ॉल्ट) को नए 5.7 पर माइग्रेट
करना चाहता था (नए देशी JSON प्रकार के साथ arround खेलना चाहता था)

मैंने नवीनतम संस्करण को स्थापित करने के निर्देशों का पालन किया ....
लेकिन MySQL प्रारंभ नहीं करना चाहता था।

देखने में कुछ समय बिताया और फिर इस पंक्ति को /var/log/mysql/errors.logनिम्न में पाया :

unknown variable 'key_buffer=16M'

और यह कुछ ऐसा है जो उस में सेट /etc/mysql/my.cnfहै, उन्नयन के दौरान, मैंने रखने के लिए चुना।

तो, उसके बाद काफी आसान है: एक ही निर्देशिका में स्थित संस्करण के साथ
मेरी जगह ...my.cnfmy.cnf.dpkg-dist

फिर भागना पड़ा

sudo mysql_upgrade -u root -p sudo service mysql restart

और अब MySQL बैक अप और चल रहा है


0

क्या गलत हो सकता है पर एक और भिन्नता मिली। मैंने डेटा निर्देशिका को स्थानांतरित कर दिया, और पता चला कि मैं mysql उपयोगकर्ता के लिए निर्देशिका को विस्मृत करना भूल गया, जो कि बिना आउटपुट के भी विफल रहता है। दृष्टिहीनता में स्पष्ट रूप से गलत है, लेकिन त्रुटि-संदेश की कमी हर तुच्छ समस्या को खोजने के लिए कठिन बनाती है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.