ERROR 2002 (HY000): सॉकेट '/var/run/mysqld/mysqld.sock' (2) के माध्यम से स्थानीय MySQL सर्वर से कनेक्ट नहीं हो सकता


441

मैंने Ubuntu 12.04 LTS (सटीक पैंगोलिन) पर LAMP स्थापित किया और फिर phpMyAdmin पर रूट पासवर्ड सेट किया । मैं पासवर्ड भूल गया और अब मैं लॉगिन करने में असमर्थ हूं। जब मैं टर्मिनल के माध्यम से पासवर्ड बदलने की कोशिश करता हूं तो मुझे यह मिलता है:

ERROR 2002 (HY000): सॉकेट '/var/run/mysqld/mysqld.sock' (2) के माध्यम से स्थानीय MySQL सर्वर से कनेक्ट नहीं हो सकता

मैं इसे कैसे ठीक करूं? मैं LAMP खोलने में असमर्थ हूं, इसे अनइंस्टॉल करूं या इसे फिर से इंस्टॉल करूं।


संभवतः इसे फिर से स्थापित करें यह आसान है: stackoverflow.com/a/31984482/763744
Zern

MySQL को रोककर पासवर्ड को रीसेट करें और इसे सुरक्षित मोड में शुरू करते हुए --grant टेबल को छोड़ दें
davejal

इसे अपने टर्मिनल में टाइप करें "sudo apt-get install mysql-server"
Humphrey

Mysql सेवा को प्रारंभ या पुनरारंभ करें और जांचें। sudo /etc/init.d/mysql start या sudo /etc/init.d/mysql पुनरारंभ
जितेन्द्र पटेल

systemctl start mariadb.service
Thewebus

जवाबों:


253

मुझे एक बार इस समस्या का सामना करना पड़ा और इसे स्थापित करके हल किया गया mysql-server, इसलिए सुनिश्चित करें कि आपने स्थापित किया है mysql-server, न कि mysql-clientकुछ और।

उस त्रुटि का मतलब है कि फ़ाइल /var/run/mysqld/mysqld.sockमौजूद नहीं है, यदि आपने इंस्टॉल नहीं किया है mysql-server, तो फ़ाइल मौजूद नहीं होगी। तो उस स्थिति में, इसे स्थापित करें

sudo apt-get install mysql-server

लेकिन अगर mysql-serverपहले से स्थापित है और चल रहा है, तो आपको कॉन्फिग फाइलों की जांच करने की आवश्यकता है।

विन्यास फाइल हैं:

/etc/my.cnf
/etc/mysql/my.cnf
/var/lib/mysql/my.cnf

में /etc/my.cnf, सॉकेट फ़ाइल config हो सकता है /tmp/mysql.sockऔर में /etc/mysql/my.cnfसॉकेट फ़ाइल config हो सकता है /var/run/mysqld/mysqld.sock। तो, निकालें या नाम बदलें /etc/mysql/my.cnf, mysql का उपयोग करें /etc/my.cnf, फिर समस्या हल हो सकती है।


आपके पास mysql डेमन रनिंग हो सकती है, और mysql-server-core इंस्टॉल हो सकता है, लेकिन आपको mysql-server, जो कि बायनेरिज़ और सिस्टम डेटाबेस सेटअप है, को इंस्टॉल करना होगा!
सेड्रिक

99
sudo apt-get install mysql-serverubuntu पर mysql स्थापित करने के लिए
towry

9
अगर मुझे तकनीकी रूप से समझाना था, तो मैं कहूंगा 1) यदि आप "mysql -u <user_name> -h <MySQL_Server_address> -p" चला रहे हैं, तो आप वास्तव में mysql क्लाइंट को mysql सर्वर तक पहुंचने के लिए चला रहे हैं। यदि आपके पास '-h' के साथ उल्लेखित पते / आईपी पते पर mysql सर्वर स्थापित नहीं है, तो उपरोक्त त्रुटि पॉप अप होगी। यह इसलिए है क्योंकि यह सॉकेट mysql.sock 2 के माध्यम से MySQL सर्वर से कनेक्ट करने में सक्षम नहीं है) यदि मैसकल-सर्वर पहले से इंस्टॉल है, तो इसे रन होना चाहिए। यदि यह नहीं है, तो आप उसी त्रुटि का पालन करेंगे। इसलिए इसे अपने द्वारा निर्दिष्ट सर्वर पर चलाएं।
मयूर नगेकर

1
यह तब भी हो सकता है यदि आप उस निर्देशिका को बदलने का प्रयास करते हैं जहां डेटाबेस संग्रहीत है, लेकिन कॉन्फ़िगरेशन फ़ाइल (एक टाइपकास्ट) की तरह गलत निर्देशिका को थोपना। आपको बताने के बजाय टाइपो निर्देशिका मौजूद नहीं है, यह आपको बताएगा कि आपके पास इसे एक्सेस करने की अनुमति नहीं है।
माइकल

4
पहले चरण के रूप में मैं सर्वर प्रक्रिया को फिर से शुरू करने का प्रयास करने की सलाह दूंगा (सर्वर बनाम क्लाइंट के अन्य भेद देखें)। Sudo /etc/init.d/mysql पुनरारंभ करने का प्रयास करें। आमतौर पर, री-इंस्टॉलेशन आवश्यक नहीं है। मैं आपको पहले लॉग फ़ाइलों की जांच करने की सलाह दूंगा। न सिर्फ mysql की लॉग फ़ाइल बल्कि / var / log / syslog भी क्योंकि आपके पास सर्वर क्रैश हो सकता है जिससे mysql साइड इफेक्ट के रूप में टूट सकता है।
रीन

212

इसे इस्तेमाल करे:

mysql -h 127.0.0.1 -P 3306 -u root -p <database>

यह भी देखने के लिए कि क्या यह चल रहा है):

telnet 127.0.0.1 3306 

संभवतः यह ( लिनक्स वितरण पर निर्भर करता है ) my.cnfफ़ाइल में सिर्फ एक गलत धारणा है ।/etc/somewhere


1
मुझे वही त्रुटि मिल रही है। और मैंने जाँच की है और मुख्य और my.cnf दोनों में डिफ़ॉल्ट बाइंड पहले से ही 127.0.0.1 पर सेट है। हालाँकि आपके आदेश का उपयोग करके मुझे कनेक्ट करने की अनुमति दी गई है। शिकार को यह देखने के लिए रखना होगा कि सिर्फ "mysql" क्यों त्रुटि दे रहा है।
cchiera

1
मुझे टेलनेट मिलता है: रिमोट होस्ट से कनेक्ट करने में असमर्थ: टेलनेट कमांड के परिणामस्वरूप कनेक्शन ने इनकार कर दिया। हालांकि अपाचे अब भी चलता है क्योंकि मैं लोकलहोस्ट को खोलने में सक्षम हूं
ऋषि दुआ

@ कोचिया आप जानते हैं, इससे पहले मेरी यह त्रुटि नहीं थी। लेकिन जब मैंने ssh सुरंग का उपयोग करके अपने db को एक iOS ऐप से जोड़ना चाहा, तो मुझे यह 2013 की त्रुटि लगी। इसे हल करने के लिए मुझे संदर्भ 1 संदर्भ 2 को संपादित /etc/my.cnfऔर टिप्पणी करनी थी । तब मैं जुड़ सका। इसके बाद, मुझे एहसास हुआ कि मुझे अब यह 2002 की त्रुटि मिल रही है जो मुझे इस जवाब पर ले गई और अब यह फिर से काम कर रहा है। निश्चित रूप से मैं इस बात से सहमत हूं कि बिना किसी त्रुटि के केवल टाइपिंग के बारे में एक स्पष्टीकरण क्यों मिलता है । #bind-address = 127.0.0.1 mysql-h
पाथ्रोस

नोट: mysql -h localhostकाम नहीं करता है। mysql -h 127.0.0.1उत्तर में निर्दिष्ट अनुसार उपयोग करना सुनिश्चित करें ।
वदसंबर

यदि मुझे इस उत्तर में कमांड के साथ लॉगिन करने की अनुमति मिलती है तो मैं इसे कैसे हल कर सकता हूं?
कार्लोस ए। जिमेनेज़ होल्मक्विस्ट

128

मैं इन सभी उत्तरों को देख रहा हूं, लेकिन कोई भी पासवर्ड रीसेट करने का विकल्प नहीं देता है और कोई स्वीकृत उत्तर नहीं देता है । वास्तविक सवाल यह है कि वह अपना पासवर्ड भूल गया है , इसलिए उसे रीसेट करने की आवश्यकता है, यह देखने के लिए कि क्या यह चल रहा है या नहीं (स्थापित या नहीं) इन उत्तरों में से अधिकांश के रूप में।


पासवर्ड रीसेट करने के लिए

इन चरणों का पालन करें (यदि आप वास्तव में अपना पासवर्ड भूल जाते हैं और आप इसे कभी भी आज़मा सकते हैं, तो मददगार हो सकते हैं, भले ही आप इस समय स्थिति में न हों):

  1. रुकें mysql

    sudo /etc/init.d/mysql stop

    या अन्य वितरण संस्करणों के लिए:

    sudo /etc/init.d/mysqld stop
  2. MySQL को सेफ मोड में शुरू करें

    sudo mysqld_safe --skip-grant-tables &
  3. रूट का उपयोग करके MySQL में प्रवेश करें

    mysql -uroot
  4. उपयोग करने के लिए MySQL डेटाबेस का चयन करें

    use mysql;
  5. पासवर्ड रीसेट करें

    -- MySQL version < 5.7
    update user set password=PASSWORD("mynewpassword") where User='root';
    
    -- MySQL 5.7, mysql.user table "password" field -> "authentication_string"
    
    update user set authentication_string=password('mynewpassword') where user='root';
  6. विशेषाधिकारों को प्रवाहित करें

    flush privileges;
  7. सर्वर को पुनरारंभ करें

    quit
  8. सर्वर को फिर से बंद करें और शुरू करें

    उबंटू और डेबियन:

    sudo /etc/init.d/mysql stop
    ...
    sudo /etc/init.d/mysql start

    CentOS, फेडोरा और आरएचईएल पर:

    sudo /etc/init.d/mysqld stop
    ...
    sudo /etc/init.d/mysqld start
  9. नए पासवर्ड के साथ लॉगिन करें

    mysql -u root -p
  10. नया पासवर्ड टाइप करें और फिर से अपने सर्वर का आनंद लें जैसे कुछ भी नहीं हुआ

यह Reset a MySQL रूट पासवर्ड से लिया गया था ।


हालांकि, एक बार MySQL मॉनिटर में लॉग इन करने और mysql डेटाबेस का उपयोग करने के बाद, यूजर्स पासवर्ड को अपडेट करना मेरे लिए काम नहीं आया, repair table user use_frmइस समस्या को हल करने के लिए मेरे लिए काम किया। - stackoverflow.com/questions/4297592/…
क्रेग वैन टोनर

20
MySQL 5.7 में, mysql.user तालिका फ़ील्ड में पासवर्ड फ़ील्ड हटा दिया गया था, अब फ़ील्ड का नाम 'प्रमाणीकरण_स्ट्रिंग' है, इसलिए (5) होना चाहिएupdate user set authentication_string=password('mynewpassword') where user='root';
डैनियल

क्या आप इसे बैश स्क्रिप्ट बनाने का तरीका जानेंगे? मुझे लगता है कि मुझे बॉक्स को पुनरारंभ करने के लिए हर बार इसकी आवश्यकता है।
vphilipnyc

कुछ मुझे बताता है कि आप एक वर्कअराउंड चाहते हैं, लेकिन आपको वास्तव में यह पता लगाने की कोशिश करनी चाहिए कि आपको हर बार ऐसा करने और इसे ठीक करने की आवश्यकता क्यों है। जैसे स्क्रिप्ट के लिए एक नया प्रश्न पूछते हैं और पोस्ट करते हैं कि आपने पहले से क्या प्रयास किया है, शायद कुछ अन्य लोग मदद कर सकते हैं
davejal

2
यह मेरे लिए बहुत काम आया, लेकिन मुझे पहली बार इस समाधान को लागू करना पड़ा: stackoverflow.com/questions/42153059/…
एंड्रयू फॉक्स

68

मैंने निम्नलिखित चरणों की कोशिश की:

  1. के रूप में लॉग इन super userकरें या उपयोग करेंsudo
  2. ओपन /etc/mysql/my.cnfका उपयोग कर एडिट
  3. bind-addressडेटाबेस सर्वर होस्ट मशीन के आईपी पते को इसके मूल्य को ढूंढें और बदलें। मेरे लिए, यह localhostया था127.0.0.1
  4. फ़ाइल को सहेजें और बंद करें।
  5. टर्मिनल पर वापस आएं और निष्पादित करें sudo service mysql start

और इसने मेरे लिए काम किया।


4
इस से, मैं बस sudo सेवा mysql पुनरारंभ चला गया और यह काम किया।
ओरेन

मेरे मामले में त्रुटि आई पी बदल गई थी, इसलिए मैंने बाइंड-एड्रेस = लोकलहोस्ट
निकोलस एरियस

@ अग्रहरि को मेरे /etc/my.cnf में बाइंड-एड्रेस के रूप में कुछ भी नहीं कहा जाता है, क्या यह फ़ील्ड जोड़ने का एक अच्छा विचार है
RCBian

@SilvioDelgado यदि आप कभी भी ssh टनलिंग से जुड़ना नहीं चाहते हैं। यहां स्पष्टीकरण
Pathros

mysql सेवा को फिर से शुरू करने से मेरे लिए भी काम किया गया, लेकिन फिर भी यह सुनिश्चित नहीं किया गया कि कारण का पता लगाने के लिए त्रुटि लॉग कहाँ है और इसे फिर से होने से रोकने के लिए प्रयास करें ...
मालेका

41

मैंने निम्नलिखित कमांड निष्पादित करके इस समस्या को ठीक किया:

mysql.server start

और अगर आप एक मैक पर हैं और mysql स्थापित करने के लिए काढ़ा का उपयोग किया है, तो बस उपयोग करें:

brew services start mysql

35

मुझे भी ऐसी ही समस्या का समाधान करना पड़ा था। mysql शुरू नहीं होगा:

sudo service mysql start
start: Job failed to start

अगर मैं अपंग को अक्षम कर देता हूं:

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

समस्या दूर हो गई। मुद्दा यह था कि mysqld /run/mysqld/mysqld.sock तक पहुँचने का प्रयास कर रहा था, लेकिन अप्प्रोफ़ॉर्म प्रोफ़ाइल ने केवल /var/run/mysqld/mysqld.sock को अनुमति दी थी (/ var / run को / रन करने के लिए सहानुभूति दी गई थी, इसलिए ये वास्तव में हैं) वही)। यह निश्चित नहीं है कि सभी कॉन्फ़िगरेशन फ़ाइलों में सेट होने के बाद से mysqld var पाथ का उपयोग क्यों नहीं कर रहा है, लेकिन आप /etc/apparmor.d/usr.sbin.mysqld में निम्न जोड़कर समस्या को ठीक कर सकते हैं

/run/mysqld/mysqld.pid rw,
/run/mysqld/mysqld.sock rw,

मुझे नहीं पता था कि मुझे "sudo service mysql start" को कॉल करना होगा। पिछली बार जब मैंने MySQL को उबंटू पर स्थापित किया था, तो मुझे लगता है कि यह इंस्टॉलेशन पर ऑटोस्टार्टेड है। मंज़रो पर मारियाडीबी को स्थापना के बाद सेवा को स्पष्ट रूप से शुरू करने की आवश्यकता है।
dmiller309

31

मेरे मामले में यह था कि डिस्क भरी हुई थी और mysqld अब शुरू नहीं हो सकता है।

Mysql सेवा को पुनरारंभ करने का प्रयास करें।

> service mysql restart

या

> service mysql stop

> service mysql start

यदि यह stopकमांड को नहीं पहचानता है तो यह निश्चित रूप से डिस्क स्थान है। आपको विभाजन में कुछ स्थान बनाना चाहिए mysqlया डिस्क को बड़ा करना चाहिए।

के साथ डिस्क स्थान की जाँच करें

> df -h

2
मेरे साथ भी यही हुआ - फुल डिस्क। कुछ जगह को साफ किया, रिबूट किया गया और समस्या दूर हो गई।
डैरेन

2
अगर वह आपकी समस्या को क्रियान्वित कर रहा है: "/etc/init.d/mysqld start" आपको बताएगा कि आपका डिस्क विभाजन पूर्ण है
टिकॉन

मेरे लिए भी, 100% डिस्क। साफ जगह और सेवा ठीक शुरू
ह्यूगो

28

मैंने इस mysqlप्रक्रिया को मारकर इसे हल किया :

ps -ef | grep mysql
kill [the id]

और फिर मैंने सर्वर को फिर से शुरू किया:

sudo /etc/init.d/mysql restart

लेकिन यह भी startकाम करता है:

sudo /etc/init.d/mysql start

फिर मैंने लॉग इन किया admin, और मैं हो गया।


ठीक है, मैं वास्तव में दुर्घटना से पहले mysql गर्भपात कर रहा था। तब मुझे "* कृपया syslog पर एक नज़र डालें।" और "ERROR 2002 (HY000): सॉकेट '/var/run/mysqld/mysqld.sock' (111) के माध्यम से स्थानीय MySQL सर्वर से कनेक्ट नहीं हो सकता"। अंत में, मुझे एहसास हुआ कि यह खुद को ठीक करने की कोशिश कर रहा है, इसलिए मैं इसे मारता हूं और फिर से शुरू करता हूं।
cwhsu

ऐसी (दुर्लभ) स्थितियाँ हैं जहाँ "mysql start" विफल हो जाएगा, इसलिए आपको "पुनरारंभ" तर्क का उपयोग करने की आवश्यकता है। यदि आपको एक डेमन प्रक्रिया को मारने की आवश्यकता है, तो मारने की कमांड के बजाय "स्टॉप" तर्क का उपयोग करना बेहतर है। हालांकि, किल कमांड कमांड किल कमांड (किलॉल मायस्कल्ड) की तुलना में अधिक सुविधाजनक है।
रीन

MySQL प्रक्रिया को मारना और फिर MySQL को फिर से शुरू करना मेरे लिए, अच्छा
विशाल शेट्टी

21

किसी तरह MySQL सर्वर प्रक्रिया ने सॉकेट नहीं बनाया, या क्लाइंट सॉकेट को गलत जगह ढूंढ रहा है।

मेरा पहला सुझाव यह जांचना होगा कि क्या MySQL सर्वर चल रहा है। दूसरा सुझाव हो सकता है, क्या MySQL सर्वर किसी अन्य होस्ट पर चल रहा है? यदि हां, तो -h <hostname>टर्मिनल में अपने MySQL क्लाइंट में ध्वज जोड़ें ।

यदि MySQL वास्तव में चल रहा है, और स्थानीय रूप से चल रहा है, तो अपनी my.cnfफ़ाइल की जाँच करें । जैसी लाइन होनी चाहिए

socket = /var/run/mysqld/mysqld.sock

देखें कि क्या आपके पोस्ट में उल्लिखित सॉकेट स्थान से मेल खाता है।

अनुभव से, मैं कहूंगा कि सबसे अधिक संभावना परिदृश्य यह है कि आपका MySQL सर्वर या तो बिल्कुल नहीं चल रहा है या उसी होस्ट पर नहीं चल रहा है जहां आप टर्मिनल से अपना MySQL क्लाइंट चलाते हैं।


19

मुझे अपने प्रोडक्शन सर्वर को रीस्टार्ट करने के बाद बस उसी मुद्दे का अनुभव हुआ। मैं एक DigitalOcean छोटी बूंद पर डेबियन 8.1 (जेसी) चला रहा हूं।

मैंने अपनी समस्या को हल करने के लिए यही किया है:

  1. जाँच करें कि क्या फ़ाइल /var/run/mysqld/mysqld.sockमौजूद है। यदि यह नहीं है, तो मैन्युअल रूप से इसे दर्ज करके बनाएं touch /var/run/mysqld/mysqld.sock(जो कि मुझे करना था)।

  2. तो MySQL प्रक्रिया इस फ़ाइल का उपयोग कर सकती है। दर्ज करके उक्त फ़ाइल का स्वामित्व बदलें chown mysql /var/run/mysqld/mysqld.sock

  3. एक बार '2' हो जाने के बाद, service mysql restartया दर्ज करके MySQL सेवा को पुनः आरंभ करें /etc/init.d/mysql restart

उपरोक्त चरणों से गुजरने के बाद, मेरा मुद्दा हल हो गया। मेरे पास शायद ही यह मुद्दा है, और शायद एक बेहतर तरीका है, इसलिए हर तरह से रचनात्मक प्रतिक्रिया प्रदान करें यदि आवश्यकता हो :)।


1
मैंने देखा कि फ़ाइल वहाँ नहीं थी और बस mysql सर्वर को पुनः आरंभ किया। यह स्वचालित रूप से फ़ाइल बनाता है और ठीक शुरू हुआ। लीड के लिए धन्यवाद।
सोजर्न

15

हो सकता है कि आपका mysql-server नहीं चल रहा हो। सुनिश्चित करें कि यह mysql.server startटर्मिनल में टाइप करके चलता है ।


15

"bind-adress"My.cnf में पैरामीटर की जाँच करें ।

आदेश के साथ प्रयास करें:

mysql -h 127.0.0.1 -P 3306 -u root -p
  • मेजबान के लिए 127.0.0.1, यानी, लोकलहोस्ट

  • पोर्ट के लिए -पॉइंट (नोटिस -२ अपरकेस के रूप में) 3306, यानी MySQL के लिए डिफ़ॉल्ट पोर्ट



11

यदि आप Amazon EC2 का उपयोग कर रहे हैं , और आपको यह समस्या हो रही है, तो आपको केवल करने की आवश्यकता है:

sudo yum install mysql-server
sudo service mysqld restart

अमेज़ॅन EC2 में एक सर्वर स्थापित नहीं है (केवल क्लाइंट स्थापित है), इसलिए उस स्थिति में आपको इसे अपने इंस्टेंस पर स्थापित करने की आवश्यकता है, और उसके बाद प्रयास करें

 mysql -u root -p

जांच करने के लिए कि क्या काम किया है।


Mysqld.service को पुनरारंभ करने में विफल: इकाई mysqld.service नहीं मिली। उबंटू में 16.04
केताव छोटालिया

9

मुझे लगता है कि जब भी आपको त्रुटि मिलती है

ERROR 2002 (HY000): सॉकेट '/var/lib/mysql/mysql.sock' के माध्यम से स्थानीय MySQL सर्वर से कनेक्ट नहीं हो सकता

मैं पहले यह जांचने की सिफारिश करूंगा कि आपका mysqlडेमन चल रहा है या नहीं ... अधिकांश समय यह डिफ़ॉल्ट रूप से नहीं चलेगा। आप इससे चेक कर सकते हैं /etc/init.d/mysqld status

यदि यह नहीं चल रहा है तो इसे पहले शुरू करें:

.../etc/init.d/mysqld start.

मुझे यकीन है कि यह 110% काम करेगा।


9

लोकलहोस्ट का उपयोग करने के बजाय:

mysql -u myuser -pmypassword -h localhost mydatabase

127.0.0.1 का उपयोग करें

mysql -u myuser -pmypassword -h 127.0.0.1 mydatabase

(यह भी ध्यान दें, -p और mypassword के बीच कोई स्थान नहीं)

का आनंद लें :)


आप इस लाइन का उपयोग करके सुरक्षा के लिए कमांड लाइन से अपना पासवर्ड भी शामिल नहीं कर सकते हैं: mysql -u myuser -p -h 127.0.0.1 mydatabase MySQL आपसे आपका पासवर्ड पूछेगा और इसे प्रतिध्वनित नहीं करेगा।
16

1
इससे मेरे लिए हल हो गया। हालांकि, मुझे अभी भी आश्चर्य है कि 127.0.0.1काम क्यों localhostनहीं करता है ?!
not2savvy

9

सुनिश्चित करें कि आपके पास महत्वपूर्ण डेटाबेस का बैकअप है और फिर MySQL से संबंधित सामान को अनइंस्टॉल करने का प्रयास करें :

apt-get remove --purge mysql\*

फिर इसे फिर से स्थापित करें :

apt-get install mysql-server mysql-client

इसने मेरे लिए काम किया और डेटा रखा गया।

यदि PHP MySQL त्रुटियों को दिखाता है तो आपको PHP MySQL को फिर से स्थापित करना पड़ सकता है :

apt-get install php5-fpm php5-mysql

मुझे लगता है कि यह घातक हथियार है। मैंने सब कुछ करने की कोशिश की लेकिन, केवल आपके प्रस्ताव से मुझे मदद मिली। धन्यवाद !
मेसो

9

मैं भी एक ही समस्या का सामना कर रहा हूँ, यह तब होगा जब आपका mysql serverडिफ़ॉल्ट रूप से नहीं चल रहा है यह फिर से कुछ सेकंड के बाद बंद हो जाएगा ताकि आप फिर से चलाएं ( $ sudo service mysql start ) कमांड जिसे आप जानते हैं तो बदल सकते हैं।

इसके लिए कमांड का उपयोग करें

$ sudo service mysql start   

(यदि आवश्यक हो तो उपयोगकर्ता पासवर्ड डालें sudo) और फिर चलाएं

$ sudo mysql -u root -p          (put user password if required )

अब आपको अपना डेटाबेस मिल गया है


7

यदि आपकी स्थापना हाल ही में हुई थी, तो आपको पुष्टि करनी चाहिए कि क्या आपका इंस्टॉलेशन SERVER है ... mysql-server-5.5 के रूप में .. हो सकता है कि आपने केवल "mysql" इंस्टॉल किया हो .. यह सर्वर के बजाय केवल क्लाइंट है।


7

यदि आप अपने लिनक्स मशीन पर XAMPP स्थापित करते हैं, तो अपनी my.cnfफ़ाइल को से कॉपी करने का प्रयास /opt/lampp/etc/my.cnfकरें /etc/my.cnf

फिर, फिर से चलाएँ mysql -u root... अब आपके पास सही सॉकेट होना चाहिए और MySQL क्लाइंट को चलाने में सक्षम होना चाहिए।


7

मुझे भी यह समस्या लगी, लेकिन मैंने अभी किया:

sudo service mysql restart 

इसने मेरे लिए काम किया।


7

मैं समाधान मिल गया

कमांड फायर करने से पहले :mysql_secure_installation

  • चरण 1: sudo systemctl stop mariadb
  • चरण 2: sudo systemctl start mariadb
  • चरण 3: mysql_secure_installation

तो फिर यह रूट पासवर्ड पूछेंगे और आप बस कर सकते हैं दबाएँ दर्ज करें और अपने नए रूट पासवर्ड सेट करें।


6

मेरे मामले में, डिफ़ॉल्ट पोर्ट 3306 का उपयोग किसी अन्य प्रक्रिया द्वारा किया जा रहा था और इस प्रकार यह शुरू नहीं हो रहा था। जब मैंने दूसरी सेवा बंद की और किया sudo service mysql start, तो यह ठीक काम किया। BTW, आप sudo lsof -Pn -iTCP:3306पोर्ट का उपयोग कर रहे हैं देखने के लिए कुछ की तरह उपयोग कर सकते हैं ।


6

मेरे मामले में इसने कुछ आर एंड डी करके काम किया:

मैं का उपयोग कर MySQL से कनेक्ट करने में सक्षम हूं

root-debian#mysql -h 127.0.0.1 -u root -p

लेकिन इसके साथ काम नहीं कर रहा है mysql -u root -p

मुझे अपने . cnfbind-address में कोई नहीं मिला । इसलिए मैंने उस पैरामीटर का बहिष्कार किया , जिसमें मुझे लॉगिन करने में समस्या हो रही थी।socket=/var/lib/mysql/mysqld.sockmy.cnf

सेवा को फिर से शुरू करने के बाद यह ठीक हो गया:

root@debian:~# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.6.19 MySQL Community Server (GPL)

6

मैं पुनः आरंभ mysql के साथ इस समस्या को हल किया

/etc/init.d/mysql stop

तथा

/etc/init.d/mysql start

बस।


5

अनुभव से मैं कहता हूं कि आपको यह जांचने की आवश्यकता है कि क्या सर्वर पहले चल रहा है और फिर MySQL को कॉन्फ़िगर करने का प्रयास करें। अंतिम समाधान MySQL को फिर से स्थापित करना है।


5

टर्मिनल खोलें और टाइप करें:

sudo apt-get purge mysql-client-core-5.6

sudo apt-get autoremove

sudo apt-get autoclean

sudo apt-get install mysql-client-core-5.5

sudo apt-get install mysql-server  

MySQL डेटाबेस कोर क्लाइंट और MySQL सर्वर पैकेज दोनों एक ही संस्करण 5.5 होंगे। MySQL Client 5.5 और MySQL Server 5.5, उबंटू 14.04 में इन पैकेजों के वर्तमान "सर्वश्रेष्ठ" संस्करण हैं, जैसा कि पैकेज मेंटेनर्स द्वारा निर्धारित किया गया है।

यदि आप MySQL Client 5.6 और MySQL Server 5.6 स्थापित करना चाहते हैं, तो आप Ubuntu Software Center में mysql-client-core-5.6 और mysql-server-5.6 पैकेज भी पा सकते हैं। महत्वपूर्ण बात यह है कि क्लाइंट और सर्वर वर्जन नंबर किसी भी स्थिति में मेल खाते हैं।

इसने मेरे लिए काम किया।


5

जाँच करें कि क्या आपके पास सही अधिकार हैं:

sudo chmod 755 /var/lib/mysql/mysql

मुझे वही समस्याएं थीं और यह मेरे लिए काम करता था। ऐसा करने के बाद मैं MySQL शुरू करने में सक्षम था।


5

मेरे मामले में, ऐसा लगता है कि मैं वास्तव में mysql प्रक्रिया को मारने में सक्षम नहीं था, जब मैं दौड़ता हूं

sudo service mysql stop
ps -ef | grep mysql

Mysql प्रक्रिया हमेशा से थी, ऐसा लगता है कि यह सॉकेट फ़ाइल को अवरुद्ध कर रही थी और नई mysql प्रक्रिया इसे स्वयं बनाने में सक्षम नहीं थी।

तो इससे मदद मिली

cd /var/run
sudo cp mysqld/ mysqld.bc -rf
sudo chown mysql:mysql mysqld.bc/
sudo service mysql stop
sudo cp mysqld.bc/ mysqld -rf
sudo chown mysql:mysql mysqld -R
sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &

अब Im डेटाबेस का उपयोग करके लॉग इन करने में सक्षम है

mysql -u root

फिर रूट पासवर्ड अपडेट करने के लिए:

UPDATE user SET authentication_string=password('YOURPASSWORDHERE') WHERE user='root';
FLUSH PRIVILEGES;

पुनश्च : मुझे रूट पासवॉड को अपडेट करने में समस्या थी, "ऑर्टिकल_सोकेट" प्लगइन के साथ समस्या लगती है, इसलिए मुझे पूर्ण विशेषाधिकारों के साथ नया उपयोगकर्ता बनाना पड़ा

insert into user set `Host` = "localhost", `User` = "super", `plugin` = "mysql_native_password", `authentication_string` = NULL, `password_expired` = "N", `password_lifetime` = NULL, `account_locked` = "N", `Select_priv` = "Y",
`Insert_priv` = "Y", `Update_priv` = "Y", `Delete_priv` = "Y", `Create_priv` = "Y", `Drop_priv` = "Y", `Reload_priv` = "Y", `Shutdown_priv` = "Y", `Process_priv` = "Y", `File_priv` = "Y",
`Grant_priv` = "Y",  `References_priv` = "Y", `Index_priv` = "Y", `Alter_priv` = "Y", `Show_db_priv` = "Y", `Super_priv` = "Y", `Create_tmp_table_priv` = "Y", `Lock_tables_priv` = "Y",
`Execute_priv` = "Y", `Repl_slave_priv` = "Y",  `Repl_client_priv` = "Y",  `Create_view_priv` = "Y", `Show_view_priv` = "Y", `Create_routine_priv` = "Y", `Alter_routine_priv` = "Y",
`Create_user_priv` = "Y",  `Event_priv` = "Y", `Trigger_priv` = "Y", `Create_tablespace_priv` = "Y";

यह उपयोगकर्ता को बिना पासवर्ड के "सुपर" बनाता है और फिर आप इससे जुड़ सकते हैं mysql -u super


उत्तर के लिए धन्यवाद और मैं mysql में लॉग इन करने में सक्षम हूं, लेकिन मेरे डेटाबेस में कोई उपयोगकर्ता तालिका नहीं है।
जॉन जो

यह समाधान काम करता है। लेकिन रूट के लिए पासवर्ड बदलने के लिए sql स्टेटमेंट को निष्पादित करने से पहले, आपको एक डेटाबेस का चयन करना होगा। निम्नलिखित कथन को निष्पादित करें <br> use mysql;<br> और अब आप <br> का उपयोग कर सकते हैंUPDATE user SET authentication_string=password('YOURPASSWORDHERE') WHERE user='root'; FLUSH PRIVILEGES;
Charle K.

5

डेबियन सर्वर जेसी पर, मेरा काम समाधान बस करना था

service mysql restart
service mysql reload

रूट उपयोगकर्ता के रूप में

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