mysql सर्वर प्रारंभ विफल


28

मैं ubuntu सर्वर चला रहा हूं। जब मैंने mysql (जो चल रहा था) में लॉगिन करने की कोशिश की, तो मुझे निम्नलिखित त्रुटि मिली

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

लेकिन mysqld.sock फ़ाइल /var/run/mysqldफ़ोल्डर के अंदर मौजूद नहीं है । ps aux | grep mysqlकमांड निष्पादित करने पर , मुझे एहसास हुआ कि mysql सर्वर नहीं चल रहा था।

मैंने तब mysql सर्वर का उपयोग करके पुनः आरंभ करने का प्रयास किया

service mysql start
service mysql restart
/etc/init.d/mysql start

लेकिन, सभी 3 मामलों में प्रारंभ प्रक्रिया विफल रही। /var/log/mysql/mysql.logऔर /var/log/mysql/mysql.errफाइलें खाली हैं।

लेकिन /var/log/error.logनिम्नलिखित जानकारी दिखाता है:

140425 12:49:05 [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.
140425 12:49:05 [Note] Plugin 'FEDERATED' is disabled.
140425 12:49:05 InnoDB: The InnoDB memory heap is disabled
140425 12:49:05 InnoDB: Mutexes and rw_locks use GCC atomic builtins
140425 12:49:05 InnoDB: Compressed tables use zlib 1.2.8
140425 12:49:05 InnoDB: Using Linux native AIO
140425 12:49:05 InnoDB: Initializing buffer pool, size = 3.0G
140425 12:49:05 InnoDB: Completed initialization of buffer pool
InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 26214400 bytes!
140425 12:49:05 [ERROR] Plugin 'InnoDB' init function returned error.
140425 12:49:05 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
140425 12:49:05 [ERROR] /usr/sbin/mysqld: unknown variable 'record_buffer=64M'
140425 12:49:05 [ERROR] Aborting

140425 12:49:05 [Note] /usr/sbin/mysqld: Shutdown complete

देखें कि क्या यह मदद करता है: serverfault.com/questions/104014/…
Rinzwind

1
का आउटपुट क्या है ls /var/lib/mysql/ib_logfile*?
जॉबिन

ls: प्रवेश नहीं कर सकता / var / lib / mysql / ib_logfile *: ऐसी कोई फ़ाइल या निर्देशिका नहीं
ananth

1
क्या आपकी / var / lib / mysql निर्देशिका mysql के लिए उपयुक्त है?
जोस

1
मैं एक Linux नौसिखिया हूँ..मैंने chmod 777 का उपयोग करके / var / lib / mysql की अनुमति बदल दी है क्या आप कृपया मुझे सुझाव दे सकते हैं कि कैसे जांच करें कि क्या यह सही तरीका नहीं है?
अनंत

जवाबों:


28

एक टर्मिनल खोलें ( Ctrl+ Alt+ t) और निम्न कार्य करें:

sudo service mysql stop
sudo rm /var/lib/mysql/ib_logfile0
sudo rm /var/lib/mysql/ib_logfile1

और लाइन record_buffer=64Mमें टिप्पणी करें /etc/mysql/my.cnf [1]

और फिर msyql का उपयोग करके पुनः आरंभ करें:

sudo service mysql restart

(स्रोत)


1
मैंने आपके द्वारा बताए गए आदेशों को चलाया..सुडो सेवा mysql पुनरारंभ करने पर, इसने एक संदेश रोक दिया: अज्ञात उदाहरण और शेल प्रॉम्प्ट प्रकट नहीं हुआ (पुनरारंभ अभी भी पिछले 50 मिनट से चल रहा है)
अनंत

1
इसके अलावा, अब त्रुटि लॉग कहता है: -140425 15:09:11 InnoDB: उच्चतम समर्थित फ़ाइल स्वरूप बाराकुडा है। 140425 15:09:12 InnoDB: 140425 15:09:13 InnoDB शुरू करने के लिए पृष्ठभूमि धागे की प्रतीक्षा: 5.5.37 शुरू; लॉग अनुक्रम संख्या 940942258188 140425 15:09:13 [ERROR] / usr / sbin / mysqld: अज्ञात चर 'record_buffer = 64M' 140425 15:09:13 [ERROR] 140425 15:09:13 InnoDB को बंद करना: बंद करना शुरू करना ... 140425 15:09:14 InnoDB: शटडाउन पूरा हुआ; लॉग अनुक्रम संख्या 940942258188 140425 15:09:14 [नोट] / usr / sbin / mysqld: शटडाउन पूरा
अनंत

नहीं..मैंने सुडोकू सेवा शुरू की।
अनंत

क्या आप करने की कोशिश कर सकते हैं sudo service mysql start?
जॉब

क्या मुझे mysql पुनरारंभ प्रक्रिया को मारना चाहिए जो चल रहा है? क्या इससे कोई समस्या होगी ??
अनंत

9

इससे मेरी समस्या हल हो गई:

mkdir /var/run/mysqld

touch /var/run/mysqld/mysqld.sock

chown -R mysql /var/run/mysqld

/etc/init.d/mysql restart


1
इन चरणों को लागू करने के बाद मेरा डेटाबेस हटा दिया गया है। अब मैं क्या करूंगा ??
अमित यादव

7

मैंने निम्नलिखित तरीके से समस्या को हल किया:

chown -R mysql:mysql /var/lib/mysql
mysql_install_db --user=mysql -ldata=/var/lib/mysql/

एक अन्य संदर्भ में, मुझे इसका सामना करना पड़ा क्योंकि mysql डेमन शुरू करने में विफल रहा। इसलिए कमांड के साथ डेमन शुरू करें - mysqld startऔर फिर सेवा शुरू करने का प्रयास करें।


2

मुझे लॉग फ़ाइलों में समान त्रुटि संदेश और समान रिक्तता थी। मेरे कॉन्फ़िगरेशन फ़ाइल (my.cnf) में मैंने निर्दिष्ट किया था कि मैं [mysqld] -section में इस लाइन को जोड़कर myisam तालिकाओं का उपयोग करना चाहता था:

default-table-type = myisam

Mysql को अपग्रेड करने के बाद ऐसा लगता है कि mysql शुरू नहीं हो रहा है। मैंने इसे बदल दिया है:

default-storage-engine = myisam

और अब सब कुछ ठीक है।


1

नए स्वैप स्थान को जोड़कर उपलब्ध रैम को बढ़ाने से भी मदद मिल सकती है। कदम यहाँ हैं

सुनिश्चित करें कि आप द्वारा दिखाए गए उपलब्ध स्थान की तुलना में छोटे आकार का / स्वैप बनाते हैं

df -h

उदाहरण के लिए मेरे लिए df- h का आउटपुट था:

Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      7.8G  1.2G  6.3G  16% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            492M   12K  492M   1% /dev
tmpfs           100M  336K   99M   1% /run

इसलिए मैंने 2 G का उपयोग करके बनाया

sudo fallocate -l 2G /swapfile

और उसके बाद ही सेवा शुरू करें

sudo /etc/init.d/mysql restart

उम्मीद है की यह मदद करेगा। शुभकामनाएं।


1

मेरा समाधान:

जांचें कि क्या सभी /etc/rc1.d ... /etc/rc5.d में mysql स्क्रिप्ट S (Ex S10mysql) से शुरू होती है और K K10mysql के रूप में नहीं।

स्पष्टीकरण: कश्मीर उपसर्ग भार के साथ रोक, हत्या सेवा की तरह; और S उपसर्ग स्टार्ट पैरामीटर से शुरू होता है।

execute in terminal:   
(command        script action  runlevel)
---------------------------------------
sudo update-rc.d mysql enable  2
sudo update-rc.d mysql enable  3
sudo update-rc.d mysql enable  4
sudo update-rc.d mysql enable  5

1

मेरे मामले में, यह एक अंतरिक्ष मुद्दा था। जांचें कि आपके पास पर्याप्त स्थान बचा है या नहीं।

से /var/log/mysql/error.logमैं दो पंक्तियों से कुछ संकेत मिल गया:

2018-08-04T05:25:29.519139Z 0 [ERROR] InnoDB: Write to file ./ibtmp1failed at offset 3145728, 1048576 bytes should have been written, only 704512 were writt$
2018-08-04T05:25:29.519145Z 0 [ERROR] InnoDB: Error number 28 means 'No space left on device'

मैं देख सकता था कि यह एक अंतरिक्ष मुद्दा है।

root@xxx:/home/user1# df -h
Filesystem                            Size  Used Avail Use% Mounted on
udev                                  477M     0  477M   0% /dev
tmpfs                                 100M   11M   89M  11% /run
/dev/mapper/server1--osticket--vg-root  8.3G  7.9G     0 100% /
tmpfs                                 497M     0  497M   0% /dev/shm
tmpfs                                 5.0M     0  5.0M   0% /run/lock
tmpfs                                 497M     0  497M   0% /sys/fs/cgroup
/dev/vda1                             472M  467M     0 100% /boot
tmpfs                                 100M     0  100M   0% /run/user/1000

यहां से, मैं देख सकता था कि वर्चुअल सर्वर पर पर्याप्त जगह नहीं बची है /dev/mapper/server1--osticket--vg-root 8.3G 7.9G 0 100% /। और मैंने वर्चुअल ड्राइव को माइग्रेट करने या बढ़ाने पर सोचा, लेकिन मैंने पहले अनावश्यक फ़ाइलों को हटाने का फैसला किया।

इसलिए, कैश और फ़ाइलों को साफ करना चाहिए जिनकी आवश्यकता नहीं थी:

#apt-get clean
#apt-get -f autoremove

फिर, बाद में mysql दूषित लॉग फ़ाइलों को हटाने के लिए मत भूलना। जब आप mysql को पुनरारंभ करते हैं तो वे फिर से जेनरेट हो जाएंगे

#service mysql stop
#cd /var/lib/mysql
#rm ib_logfile*
#service mysql start

अपने mysql सर्वर सेवा की जाँच करें और यह शायद ऊपर और चल रहा है

root@server1-osticket:/var/lib/mysql# service mysql status
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2018-08-04 23:07:24 WAT; 7min ago
  Process: 1559 ExecStartPost=/usr/share/mysql/mysql-systemd-start post (code=exited, status=0/SUCCESS)
  Process: 1549 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
 Main PID: 1558 (mysqld)
    Tasks: 29
   Memory: 280.3M
      CPU: 589ms
   CGroup: /system.slice/mysql.service
           └─1558 /usr/sbin/mysqld

Aug 04 23:07:19 server1-osticket systemd[1]: Starting MySQL Community Server...
Aug 04 23:07:24 server1-osticket systemd[1]: Started MySQL Community Server.
root@server1-osticket:/var/lib/mysql#

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


0

फ़ाइल /var/lib/mysql/.run-mysql_upgrade निकालें और इसे शुरू करना चाहिए

;)

"महान शक्ति के साथ महान जिम्मेदारी आती है"


0

जब मैंने सेट max_allowed_packet = 0.5Mकिया तो मुझे यह समस्या थी /etc/mysql/my.cnf

मैंने इसे बदलकर हल कर max_allowed_packetदिया 1M


0

निम्न आदेश मेरी समस्या को हल करता है और mysql इसके बाद शुरू हो सकता है। (यह कुछ मामलों में उपयोगी हो सकता है)

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