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


385

मुझे mysql से जुड़ने की कोशिश करने में बड़ी समस्या हो रही है। जब मैं चलता हूं:

/usr/local/mysql/bin/mysql start

मेरे पास निम्न त्रुटि है:

Can't connect to local MySQL server through socket '/var/mysql/mysql.sock' (38)

मैं क्या है mysql.sockके तहत /var/mysqlनिर्देशिका।

में /etc/my.cnfमेरे पास है:

[client]
port=3306
socket=/var/mysql/mysql.sock

[mysqld]
port=3306
socket=/var/mysql/mysql.sock
key_buffer_size=16M
max_allowed_packet=8M

और /etc/php.iniमेरे पास है:

; Default socket name for local MySQL connects.  If empty, uses the built-in
; MySQL defaults.
mysql.default_socket = /var/mysql/mysql.sock

मैंने अपाचे का उपयोग करके पुनः आरंभ किया है sudo /opt/local/apache2/bin/apachectl restart

लेकिन मैं अभी भी त्रुटि है।

अन्यथा, मुझे नहीं पता कि क्या यह प्रासंगिक है लेकिन जब मैं करता mysql_config --socketsहूं तो मुझे मिलता है

--socket         [/tmp/mysql.sock]

53
क्या MySQL चल रहा है?
डेविड

2
यह निश्चित रूप से इसे जोड़ने की कोशिश में त्रुटि की व्याख्या करता है। कैसे, जैसा कि @Romain ने उल्लेख किया है, क्या MySQL के लॉग में कुछ भी है (कोशिश करें /var/log/mysqlया वहां कहीं आसपास) जो इंगित करता है कि यह क्यों नहीं चल रहा है? जब आप इसे शुरू करने का प्रयास करते हैं तो क्या आपको कोई त्रुटि मिलती है?
डेविड

5
मुझे वही त्रुटि मिल रही थी, लेकिन मेरे मामले में, मुझे पता चला कि mysql शुरू नहीं होगा क्योंकि डिस्क 100% भरी हुई थी। /var/log/mysqld.log सहायक था।
येलवोन

4
कारण है कि वे पूछ रहे हैं कि क्या चल रहा है, मुझे लगता है, क्योंकि सेवा शुरू होने पर सॉकेट बनाया जाता है। मैंने mysql स्थापित किया, लेकिन कभी भी सेवा शुरू नहीं की, इसलिए .sock फ़ाइल मौजूद नहीं है। टाइप करें service mysqld startयदि आप अभी स्थापित हैं। hth
चानगोकुन

2
शिमनी के जवाब के नीचे sudo service mysql startमुझे बचा लिया
किरेन शिवा

जवाबों:


218

यदि आपकी फ़ाइल my.cnf (आमतौर पर / etc / mysql / फ़ोल्डर में) सही तरीके से कॉन्फ़िगर की गई है

socket=/var/lib/mysql/mysql.sock

आप जांच सकते हैं कि mysql निम्नलिखित कमांड के साथ चल रहा है या नहीं:

mysqladmin -u root -p status

mysql फ़ोल्डर में अपनी अनुमति बदलने का प्रयास करें। यदि आप स्थानीय स्तर पर काम कर रहे हैं, तो आप कोशिश कर सकते हैं:

sudo chmod -R 755 /var/lib/mysql/

यह मेरे लिए हल है


11
उपरोक्त चरणों का पालन करने और mysqldसेवा को पुनः आरंभ करने के बाद इसने मेरी मदद की ।
whirlwin

11
यह सबसे अच्छा होगा यदि आप अनुमतियों को 755 पर सेट करें ताकि केवल निर्देशिका स्वामी ही इसे लिख सकें।
कोडवर्ड

2
मेरी समस्या दरअसल यह थी कि मेरे वेब ऐप के लिए मेरा स्टोरेज वॉल्यूम अंतरिक्ष से बाहर चला गया था! क्लासिक!
जेम्स टी स्नेल

3
मेरे खुले 12.3 पर my.cnf / etc / में है।

हमें /var/log/mysqld.log, धन्यवाद पर भी अनुमति बदलनी चाहिए
अल्लाहबख्श.जी

94

क्या आप सुनिश्चित हैं कि आपने mysql और साथ ही mysql सर्वर स्थापित किया है।

MySql सर्वर स्थापित करने के लिए उदाहरण के लिए मैं mysql कमांड लाइन टूल और सर्वर दोनों को स्थापित करने के लिए yum या apt का उपयोग करूंगा:

yum -y install mysql mysql-server (or apt-get install mysql mysql-server)

MySQL सेवा सक्षम करें:

/sbin/chkconfig mysqld on

MySQL सर्वर शुरू करें:

/sbin/service mysqld start

बाद में MySQL रूट पासवर्ड सेट करें:

mysqladmin -u root password 'new-password' (with the quotes)

मुझे उम्मीद है यह मदद करेगा।


मैंने होमब्रे का इस्तेमाल किया और इसने एक आकर्षण की तरह काम किया:brew install mysql
JaKXz

2
मैंने पहले से ही ग्राहक को स्थापित किया था, मुझे जिस कमांड की आवश्यकता थी वह sudo apt-get install mysql-serverतब जीवन अच्छा था
ErichBSchulz

1
ग्राहक Can't connect to local MySQL server through socket '/var/mysql/mysql.sock' (38) से उत्पादन नहीं है ? यह क्लाइंट कनेक्ट करने की कोशिश कर रहा है और असफल हो रहा है, है ना? (मुझे लगता है कि मूल प्रश्न को स्पष्ट करने के लिए संपादन की आवश्यकता है)।
msouth

76

मेरे लिए काम करने वाला एक त्वरित समाधान: mysql_connect () में 'लोकलहोस्ट' के बजाय स्थानीय आईपी पते (127.0.0.1) का उपयोग करने का प्रयास करें। यह "फ़िक्स" एक यूनिक्स सॉकेट के बजाय टीसीपी / आईपी के माध्यम से कनेक्ट करने के लिए php करता है।


यह काम किया ... लेकिन क्यों? कनेक्ट करने का प्रयास करने से पहले MySQL का समाधान localhostऔर 127.0.0.1वैसे भी नहीं मिलता है?
Jaime Hablutzel

3
नहीं ... जब आप लोकलहोस्ट का उपयोग कर रहे हैं तो आप इंटरनेट सॉकेट का उपयोग नहीं कर रहे हैं। आप IPC सॉकेट का उपयोग कर रहे हैं। en.wikipedia.org/wiki/Unix_domain_socket । 127.0.0.1 स्थानीय लूपबैक है जिसका अर्थ है कि अनुरोध आपकी मशीन से बाहर नहीं निकलेगा, लेकिन यह टीसीपी / आईपी का उपयोग करेगा इस प्रकार धीमी ...
दही दही

मेरे लिए भी काम करता है। मैं ubuntu 14.04, hhvm और nginx पर हूं।
Maykonn

1
धन्यवाद। यह मेरे लिए काम करता है, लेकिन यह मेरे लिए स्पष्ट नहीं है कि उत्तर क्या है
नाथन ब्यूजेंस

यह भी आवश्यक है जब आप एक ssh सुरंग के माध्यम से दूरस्थ सर्वर से जुड़ते हैं
Tamm

51

मुझे निम्नलिखित त्रुटि मिली

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

कई तरीकों की कोशिश की और अंत में निम्नलिखित तरीके से इसे हल किया

sudo gksu gedit /etc/mysql/my.cnf

संशोधित

#bind-address       = 127.0.0.1

सेवा

bind-address        = localhost

और पुनः आरंभ किया

sudo /etc/init.d/mysql restart

इसने काम कर दिया


मेरा मुद्दा भी ऐसा ही था; ईथरनेट (192.168.220.11) से वाईफाई (192.168.220.12) में स्थानांतरित किया गया था, लेकिन ईथरनेट आईपी के लिए हार्ड-कोडित बाइंड-एड्रेस था। localhostइसे बदलने के लिए ।
क्रिस जी

30

सुनिश्चित करें कि आप mysqld चला रहे हैं: /etc/init.d/mysql start


3
या sudo service mysql start|restartउबंटू के लिए।
1

18

समस्या को उत्पन्न होने से रोकने के लिए, आपको सर्वर को बंद करने के बजाय कमांड लाइन से सर्वर का एक सुंदर शटडाउन करना होगा।

shutdown -h now

यह मशीन को बंद करने से पहले चलने वाली सेवाओं को बंद कर देगा।

Centos के आधार पर, जब आप इस समस्या में भाग लेते हैं तो इसे वापस लाने के लिए एक अतिरिक्त विधि mysql.sock को स्थानांतरित करना है:

mv /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock.bak

service mysqld start

सेवा को पुनरारंभ करने से mqsql.sock नामक एक नई प्रविष्टि बनती है


14

मुझे यह त्रुटि तब मिली जब मैंने अपनी फ़ाइल के लिए क्रॉन जॉब सेट किया। मैंने फ़ाइल की अनुमतियों को 777 में बदल दिया, लेकिन इसने अभी भी मेरे लिए काम नहीं किया। अंत में मुझे समाधान मिल गया। हो सकता है यह दूसरों के लिए मददगार हो।

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

mysql -h 127.0.0.1 -P 3306 -u रूट -p

याद रखें कि -h का मतलब होस्ट है , -पी का मतलब पोर्ट और -पी का मतलब पासवर्ड है।


एक सॉकेट का उपयोग करने के बजाय टीसीपी / आईपी पर एक कनेक्शन के लिए मजबूर करना अक्षम है (और इसके लिए आवश्यक है कि आप सर्वर में लोकलहोस्ट टीसीपी / आईपी समर्थन चालू करें, यह पहले के उत्तर के अनुसार )। 2011 से स्वीकृत उत्तर बेहतर है: सर्वर को कॉन्फ़िगर करें ताकि आप सॉकेट का ठीक से उपयोग कर सकें।
क्वेंटिन

10
-pपोर्ट का मतलब यह नहीं है , इसका मतलब है पासवर्ड , आपने इसे भ्रमित किया है-P
क्वेंटिन

ऐसा लगता है, कम या ज्यादा, इस पहले जवाब
Quentin

मेरे लिए यह सही मेजबान को परिभाषित करने का एक मामला था: mysql -h 127.0.0.1 -u root -p
kghbln

12

जैसा कि यहां कई उत्तरों से देखा जा सकता है, जब आप MySQL सेवा शुरू करते हैं तो इस त्रुटि संदेश के परिणामस्वरूप बहुत सारी समस्याएं हो सकती हैं। बात यह है कि, MySQL आमतौर पर आपको वही बताएगा जो गलत है, यदि आप उचित लॉग फ़ाइल में देखते हैं।

उदाहरण के लिए, उबंटू पर, आपको जांचना चाहिए /var/log/syslog। चूंकि इस फाइल में बहुत सी अन्य चीजें भी लॉग इन हो सकती हैं, आप शायद grepmysql संदेशों tailको देखने के लिए , और केवल सबसे हाल ही में देखने के लिए उपयोग करना चाहते हैं । सभी एक साथ, जैसे लग सकते हैं:

grep mysql /var/log/syslog | tail -50

आँख बंद करके अपने कॉन्फ़िगरेशन में बदलाव न करें क्योंकि किसी और ने कहा 'यह मेरे सिस्टम के लिए काम करता है।' पता लगाएँ कि आपके सिस्टम में वास्तव में क्या गलत है और आप एक बेहतर परिणाम प्राप्त करेंगे।


5
+1 एक कदम पीछे लेने और कुछ ऐसा इंगित करने के लिए, जिसमें से कई अन्य उत्तर भी विचार करने में विफल हो जाते हैं - कि वास्तव में यह देखना कि अनुप्रयोग ने समस्या के रूप में जो रिपोर्ट की है, वह आँख बंद करके दौड़ने और बदलाव करने की तुलना में बहुत बेहतर दृष्टिकोण है, जो नहीं हो सकता है यहां तक ​​कि लागू हो ...!
स्लीवेन

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

11

एक अन्य समाधान /etc/my.cnf को संपादित करना और अनुभाग [क्लाइंट] में होस्ट को शामिल करना है

 [client]
 #password       = your_password
 host            = 127.0.0.1
 port            = 3306
 socket          = /var/run/mysql/mysql.sock

और फिर mysql सेवा को फिर से शुरू करना।

इस वर्कअराउंड में परीक्षण किया गया था: सर्वर संस्करण: 5.5.25a- लॉग स्रोत वितरण


[क्लाइंट] सेक्शन को जोड़ने की सिफारिश की जाती है यदि पहले से ही नहीं है। Myfnf
Cris

7

मुझे भी यही समस्या थी और यह mysql ड्राइवरों के अपडेट के कारण हुआ है जब mysql सर्वर चल रहा था। मैंने तय किया कि यह mysql और apache2 दोनों को फिर से शुरू करेगा:

सुडो सेवा मसलक रोक

सुडो सेवा mysql start

sudo service apache2 stop

sudo service apache2 start


मेरे मामले में, mysqlनहीं चल रहा था। मैं यह सत्यापित करने के लिए दौड़ने के sudo service mysql startबाद दौड़ा sudo service mysql statusकि यह नहीं चल रहा था।
तस्स

6

मेरे मामले में, मैं सेंटोस 5.5 का उपयोग कर रहा था। मैंने पाया कि समस्या यह थी क्योंकि mysql सेवा को कुछ कैसे रोका गया था। इसलिए मैंने कमांड के साथ mysql सेवा शुरू की:

 /etc/init.d/mysqld start

तो .. मूर्खतापूर्ण गलती।


6

यदि सब कुछ ठीक काम करता है और आप इस त्रुटि को देखना शुरू कर देते हैं, तो इससे पहले कि आप कुछ और करें, सुनिश्चित करें कि आप डिस्क स्थान से बाहर नहीं हैं:

df -h

यदि वॉल्यूम जहां mysql.sock बनाया जा रहा है, 100% उपयोग में है, तो MySql इसे बनाने में सक्षम नहीं होगा और यह इस त्रुटि का कारण होगा। आपको बस कुछ ऐसी चीज़ों को हटाने की ज़रूरत है, जिनकी ज़रूरत नहीं है, जैसे पुरानी लॉग फाइलें।



5
sudo service mysql start

यह आपको ठीक काम करना चाहिए। इस बात की संभावना हो सकती है कि आपने कुछ आदेशों को बदल दिया है जो mysql कॉन्फ़िगरेशन को प्रभावित करते हैं।


या systemctl start mariadb.serviceफेडोरा में 22 या रेडहैट 7. उसके बाद रूट पासवर्ड सेट करना संभव है।
जूनियर मेहे

5

इस समस्या के कई समाधान हैं लेकिन मेरी स्थिति के लिए, मुझे बस मशीन / सर्वर ( Ubuntu 16.04 सर्वर ) पर DATE को सही करने की आवश्यकता है ।

i) अपने सर्वर की तारीख की जाँच करें और इसे सही करें।

ii) चलाएं sudo /etc/init.d/mysql restart

इसे शुरू किया जाना चाहिए।


4

मुझे त्रुटि मिल रही थी क्योंकि मैं MAMP चला रहा था और मेरी .sock फ़ाइल अलग स्थान पर थी। मैंने सिर्फ एक प्रतीकात्मक लिंक जोड़ा जहां ऐप ने सोचा कि यह होना चाहिए, जहां यह वास्तव में था और यह एक आकर्षण की तरह काम करता है।


जहां प्रतीकात्मक लिंक जोड़ सकते हैं, जहां ऐप ने सोचा कि यह होना चाहिए, जहां यह वास्तव में था?
गिल्बर्टो इबारा

4

मैंने यह भी पाया कि यह एक अनुमति समस्या थी। मैंने MySQL फ़ाइलों की तुलना एक काम करने वाली इंस्टॉल (दोनों डेबियन 6 निचोड़ने पर) से की है और निम्नलिखित स्वामित्व परिवर्तन (जहाँ mydatabaseआपके पास कोई भी डेटाबेस है) करना है।

स्वामित्व mysql:mysql:

chown mysql:mysql /var/lib/mysql
chown mysql:mysql /var/lib/mysql/ib*
chown mysql:mysql /var/lib/mysql/mydatabase
chown mysql:mysql /var/lib/mysql/mydatabase/*
chown mysql:mysql /var/lib/mysql/mysql/* 

स्वामित्व mysql:root:

chown mysql:root /var/lib/mysql/mysql
chown mysql:root /var/run/mysqld 

स्वामित्व mysql:adm:

chown mysql:adm /var/log/mysql
chown mysql:adm /var/log/mysql.err
chown mysql:adm /var/log/mysql.log* 

4

मेरे लिए - यह केवल MySQL का मामला था जिसे लोड करने में काफी समय लगा। मेरे एक डेटाबेस में 100,000 से अधिक टेबल हैं और यह आखिरकार शुरू हो गया लेकिन स्पष्ट रूप से इस उदाहरण में लंबा समय लगना है।


3

यदि आप AWS (Amazon Web Services) माइक्रो संस्करण का उपयोग कर रहे हैं, तो यह एक मेमोरी इश्यू है। जब मैं भागा

mysql

टर्मिनल से यह कहना होगा

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

इसलिए मैंने निम्नलिखित प्रयास किया और यह विफल हो जाएगा।

service mysqld restart

बहुत खोजने के बाद, मुझे पता चला कि आपको पर्याप्त मेमोरी के लिए MySQL के लिए एक स्वैप फाइल बनानी होगी। निर्देश सूचीबद्ध हैं: http://www.prowebdev.us/2012/05/amazon-ec2-linux-micro-swap-space.html

तब, मैं mysqld को पुनः आरंभ करने में सक्षम था।


मुझे AWS सर्वर "माइक्रो" उदाहरण पर एक ही समस्या थी और मैं पुष्टि कर सकता हूं कि स्वैप फ़ाइल बनाने के लिए DID "ERROR 2002 (HY000) को ठीक करें: सॉकेट / var / run / mysqld / mysqld के माध्यम से स्थानीय MySQL सर्वर से कनेक्ट नहीं हो सकता .sock '(111) "समस्या। शुक्रिया @ jth_92!
कोनारस

3

आप हमेशा mysql सर्वर शुरू कर सकते हैं जैसे mysql.sock फ़ाइल का स्थान निर्दिष्ट करके --socketविकल्प का उपयोग करके

mysql --socket=/var/mysql/mysql.sock 

यह तब भी काम करेगा जब my.cnf फ़ाइल में किसी भिन्न स्थान में निर्दिष्ट सॉकेट फ़ाइल का स्थान।


3

उन लोगों के लिए जिनका कोई समाधान काम नहीं आया, कोशिश करें:

cd /etc/mysql

जाँच करें कि my.cnf मौजूद है या नहीं

nano my.cnf

और सुनिश्चित करें कि आपके पास केवल एक बाइंड-एड्रेस इस प्रकार है:

बाइंड-पता = 127.0.0.1

यदि नहीं, तो यह समस्या हो सकती है, बस नैनो से बाहर निकलें और फ़ाइल को सहेजें।

तथा service mysql start

ध्यान दें कि अगर आपके पास नैनो (इसका टेक्स्ट एडिटर) नहीं है, तो इसे बस इंस्टॉल करें apt-get install nanoऔर एक बार बाहर निकलने के लिए बस Ctrl + X दबाएं, उसी फाइल को सेव और यू करने के लिए Y कहना ना भूलें)


दुर्भाग्य से यह काम नहीं किया। यह मूल रूप से सिर्फ यह कहता है कि केवल स्थानीय मशीन ही mysql को एक्सेस कर सकती है। कोई दूरस्थ कनेक्शन नहीं।
स्टीफन

3

सर्वर को शुरू करने की कोशिश करते समय मुझे भी यह समस्या थी, इसलिए यहां कई जवाब जो सर्वर को शुरू करने के लिए कहते हैं, वे काम नहीं करते। पहली चीज जो आप कर सकते हैं, उसे देखने के लिए निम्नलिखित को निष्पादित करें कि क्या कोई विन्यास त्रुटियां हैं:

/usr/sbin/mysqld --verbose --help 1>/dev/null

मेरे पास एक त्रुटि थी जो दिखाई दी:

160816 19:24:33 [Note] /usr/sbin/mysqld (mysqld 5.5.50-0ubuntu0.14.04.1-log) starting as process 9461 ...
160816 19:24:33 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead.
160816 19:24:33 [Note] Plugin 'FEDERATED' is disabled.
160816 19:24:33 [ERROR] /usr/sbin/mysqld: unknown variable 'innodb-online-alter-log-max-size=4294967296'
160816 19:24:33 [ERROR] Aborting

एक साधारण grep -HR "innodb-online-alter-log-max-size" /etc/mysql/ने मुझे दिखाया कि किस फ़ाइल में आपत्तिजनक लाइन थी, इसलिए मैंने फ़ाइल से उस लाइन को हटा दिया।

फिर, मेरे पास अपनी /var/log/mysql/error.logफ़ाइल की जाँच :

InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 671088640 bytes!
160816 22:46:46 [ERROR] Plugin 'InnoDB' init function returned error.
160816 22:46:46 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
160816 22:46:46 [ERROR] Unknown/unsupported storage engine: InnoDB
160816 22:46:46 [ERROR] Aborting

इस प्रश्न के आधार पर स्वीकृत समाधान काम नहीं करेगा क्योंकि मैं सर्वर शुरू भी नहीं कर सकता था, इसलिए मैंने कुछ टिप्पणियों का पालन किया और अपना /var/lib/mysql/ib_logfile0और हटा दिया/var/lib/mysql/ib_logfile1 फ़ाइलों को ।

इसने सर्वर को शुरू करने की अनुमति दी और मैं प्रश्नों को जोड़ने और निष्पादित करने में सक्षम था, हालांकि मेरी त्रुटि लॉग फ़ाइल की जांच करने से यह जल्दी से इस तरह की कई हजारों लाइनों के साथ भर रहा था:

160816 22:52:15  InnoDB: Error: page 1415 log sequence number 82039318708
InnoDB: is in the future! Current system log sequence number 81640793100.
InnoDB: Your database may be corrupt or you may have copied the InnoDB
InnoDB: tablespace but not the InnoDB log files. See
InnoDB: http://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html
InnoDB: for more information.

यहाँ से एक सुझाव के आधार पर , इसे ठीक करने के लिए मैंने एक mysqldump और सभी डेटाबेस को पुनर्स्थापित किया (कई अन्य समाधानों के लिए लिंक देखें)।

$ mysqldump -u root -p --allow-keywords --add-drop-database --comments --hex-blob --opt --quote-names --databases db_1 db_2 db_3 db_etc > backup-all-databases.sql
$ mysql -u root -p < backup-all-databases.sql

सब कुछ उम्मीद के मुताबिक काम करता दिखाई दे रहा है।


जाँच /var/log/mysql/error.logसे मेरे मामले में मदद मिली। वहाँ गया था [ERROR] Can't init tc log: जल्दी से निम्नलिखित जवाब का उपयोग कर तय किया गया था जो dba.stackexchange.com/a/185006/163583
Juraj.Lorinc

2

जोड़ा जा रहा है

--protocol=tcp 

आपके संबंध में pramaters की सूची ने मेरे लिए काम किया।



2

मैं आज इस मुद्दे पर भाग गया। इनमें से किसी भी जवाब ने तय नहीं किया। मुझे शुरू करने के लिए mysql सेवा के लिए निम्न कमांड करने की जरूरत है ( https://stackoverflow.com/a/20141146/633107 )

sudo /etc/init.d/mysql stop
cd /var/lib/mysql/
ls ib_logfile*
mv ib_logfile0 ib_logfile0.bak
mv ib_logfile1 ib_logfile1.bak
... etc ...
/etc/init.d/mysql restart

यह आंशिक रूप से /var/log/mysql/error.log में निम्नलिखित त्रुटियों द्वारा इंगित किया गया था:

140319 11:58:21 InnoDB: Completed initialization of buffer pool
InnoDB: Error: log file ./ib_logfile0 is of different size 0 50331648 bytes
InnoDB: than specified in the .cnf file 0 5242880 bytes!
140319 11:58:21 [ERROR] Plugin 'InnoDB' init function returned error.
140319 11:58:21 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
140319 11:58:21 [ERROR] Unknown/unsupported storage engine: InnoDB
140319 11:58:21 [ERROR] Aborting

मैंने डिस्क को पूर्ण त्रुटि भी देखा, लेकिन केवल बिना सूडो के कमांड चलाने पर। यदि अनुमतियाँ जाँच विफल हो जाती हैं, तो यह डिस्क को पूर्ण रिपोर्ट करती है (तब भी जब आपका विभाजन पूर्ण के करीब भी नहीं है)।


2

सेंटोस 7, 64 बिट। ताजा स्थापना।
मेरे मामले में, त्रुटि इसलिए थी क्योंकि मेरे पास MySQL सर्वर और MySQL क्लाइंट स्थापित नहीं था।
का उपयोग करते हुए yum, मैंने हटा दिया mariadbऔर mysql- सामुदायिक संस्करण। मैंने आधिकारिक MySQL वेबसाइट से क्लाइंट और सर्वर के लिए आरपीएम डाउनलोड किया किया और सर्वर और क्लाइंट को स्थापित किया।

सर्वर स्थापित करने पर, मुझे एक संदेश दिखाया गया था कि MySQL के लिए रूट खाते का पासवर्ड एक फ़ाइल में संग्रहीत किया गया था जिसे मैं देख सकता था sudo cat /root/.mysql_secret

इसलिए क्लाइंट और सर्वर को स्थापित करने के बाद, मैंने जाँच की कि क्या MySQL काम कर रहा था (मुझे लगता है कि मैंने ऐसा करने से पहले रिबूट किया) sudo service mysql statusऔर मुझे इसका परिणाम मिला।

MySQL चल रहा है (2601) [ठीक है]

मैंने .mysql_secret फ़ाइल से पासवर्ड का उपयोग करके MySQL में लॉग इन किया है
mysql -uroot -pdxM01Xfg3DXEPabpf:। ध्यान दें कि dxM01Xfg3DXEPabpf.mysql_secret फ़ाइल में उल्लिखित पासवर्ड है।

और फिर टाइप किया गया रूट के पासवर्ड को बदलने के लिए mysql प्रॉम्प्ट पर निम्न कमांड दर्ज की गई है:

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('somePassword');

तब से सब कुछ ठीक चला।


1
सर्वर संस्करण के साथ RHEL6U6 पर एक ही मामला: 5.6.23-उद्यम-वाणिज्यिक-उन्नत।
HCD

2
sudo service mysqld start

मेरे लिए काम किया, मैं Centos का उपयोग कर रहा हूँ


2

यह सीधे आपके प्रश्न का उत्तर नहीं देता है, लेकिन इसका एक सबसेट है, जिसका अर्थ है PythonAnywhere का उपयोग करना। मैं इस सवाल पर लड़खड़ाता रहा जब एक फिक्स की तलाश की तो मैं इसे इस उम्मीद में यहाँ जोड़ रहा हूँ कि यह मेरी स्थिति में दूसरों की मदद करेगा।


दक्षता और विश्वसनीयता को बेहतर बनाने के लिए पायथनऑनएव ने डेटाबेस कनेक्शन होस्टनाम को बदलने का फैसला किया, जैसा कि यहां विस्तृत है :

आपके खाते के MySQL डेटाबेस उदाहरण से कनेक्ट करने के लिए आपको जिस आधिकारिक होस्ट नाम का उपयोग करना चाहिए, वह mysql.server से बदलकर yourusername .mysql.pythonanywhere-services.com हो गया है । यह हमारे बुनियादी ढांचे के एक हिस्से को दरकिनार कर देता है जिसने हाल के हफ्तों में समस्याओं को दिखाना शुरू कर दिया है, और यह पुराने तरीके की तुलना में बहुत अधिक कुशल और विश्वसनीय होना चाहिए।

इसलिए, आपको ऊपर दिए गए मान पर अपने होस्टनाम को अपडेट करना होगा।


2

मुझे अभी यह समस्या हुई है। एक दिन की जाँच के बाद आखिरकार मुझे जवाब मिल गया है कि जब mybql.sock फ़ाइल बनाई गई है, जब मारबीडीबी शुरू होती है और जब मारियाबडी बंद होती है तो उसे हटा दिया जाता है। मारियाडीबी नहीं चल रहा है तो यह मौजूद नहीं होगा। शायद आपने MariaDB स्थापित नहीं किया है। आप निर्माण कार्य को पूरा करते हैं: https://www.linode.com/docs/dat डेटाबेस/mariadb/how-to-install-mariadb-on-centos-7 BEST


1

मेरे पास यह सॉकेट त्रुटि थी और यह मूल रूप से इस तथ्य से नीचे आया था कि MySQL नहीं चल रहा था। यदि आप एक ताजा इंस्टॉल चलाते हैं, तो सुनिश्चित करें कि आप 1) सिस्टम पैकेज और 2) पैनल इंस्टॉलर (mysql.prefPane) स्थापित करें। पैनल इंस्टॉलर आपको अपने सिस्टम प्राथमिकताएं और MySQL खोलने की अनुमति देगा, और फिर एक इंस्टेंस चल रहा होगा।

ध्यान दें कि, एक नए इंस्टॉलेशन पर, मुझे अपने कंप्यूटर को परिवर्तनों को ठीक से प्रभावी करने के लिए रीसेट करने की आवश्यकता थी। रिबूट के बाद, मुझे एक नया उदाहरण मिला और वह बिना किसी समस्या के लोकलहोस्ट का कनेक्शन खोलने में सफल रहा।

नोट का भी, मैं जाहिरा तौर पर MySQL के पिछले संस्करणों को स्थापित किया था, लेकिन पैनल को हटा दिया था, जिससे मैक उपयोगकर्ताओं के लिए चलने वाले MySQL का एक उदाहरण प्राप्त करना आसान हो जाता है।

पुनः स्थापित करने की इस प्रक्रिया के लिए एक अच्छा लिंक: http://www.coolestguyplanettech.com/how-to-install-php-mysql-apache-on-os-x-10-6/

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