Uruchomienie serwera mysql nie powiodło się


28

Korzystam z serwera Ubuntu. Kiedy próbowałem zalogować się do mysql (który był uruchomiony), otrzymałem następujący błąd

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

Ale plik mysqld.sock nie istnieje w /var/run/mysqldfolderze. Po uruchomieniu ps aux | grep mysqlpolecenia zrozumiałem, że serwer mysql nie działa.

Następnie spróbowałem zrestartować serwer mysql przy użyciu

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

Ale proces uruchamiania nie powiódł się we wszystkich 3 przypadkach. /var/log/mysql/mysql.logi /var/log/mysql/mysql.errpliki są puste.

Ale /var/log/error.logpokazuje następujące informacje:

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


1
Jaka jest wydajność ls /var/lib/mysql/ib_logfile*?
— jobin

ls: nie można uzyskać dostępu do / var / lib / mysql / ib_logfile *: Brak takiego pliku lub katalogu
— ananth

1
Czy katalog / var / lib / mysql jest zapisywalny dla mysql?
— Jos

1
Jestem początkującym Linuksem .. Zmieniłem uprawnienia / var / lib / mysql przy użyciu chmod 777 . Czy możesz mi zasugerować, jak sprawdzić, czy nie jest to właściwy sposób?
— ananth

Odpowiedzi:


28

Otwórz terminal ( Ctrl+ Alt+ t) i wykonaj następujące czynności:

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

i skomentuj wiersz record_buffer=64Mw /etc/mysql/my.cnf [1]

a następnie uruchom ponownie msyql, używając:

sudo service mysql restart

(Źródło)


1
Uruchomiłem polecenia, o których wspomniałeś .. Po uruchomieniu restartu usługi sudo mysql dał komunikat zatrzymania: Nie pojawiła się nieznana instancja i monit powłoki (restart nadal działa od ostatnich 50 minut)
— ananth

1
Ponadto teraz dziennik błędów mówi: -140425 15:09:11 InnoDB: najwyższy obsługiwany format pliku to Barracuda. 140425 15:09:12 InnoDB: Oczekiwanie na uruchomienie wątków w tle 140425 15:09:13 Uruchomiono InnoDB: 5.5.37; numer sekwencji logu 940942258188 140425 15:09:13 [BŁĄD] / usr / sbin / mysqld: nieznana zmienna 'record_buffer = 64M' 140425 15:09:13 [BŁĄD] Przerwanie 140425 15:09:13 InnoDB: Rozpoczęcie zamykania ... 140425 15:09:14 InnoDB: Zakończono zamykanie; numer sekwencji dziennika 940942258188 140425 15:09:14 [Uwaga] / usr / sbin / mysqld: Zakończono zamykanie
— ananth

Nie .. Zrobiłem ponowne uruchomienie mysql usługi sudo.
— ananth

Czy możesz spróbować sudo service mysql start?
— jobin

Czy powinienem zabić uruchomiony ponownie proces mysql? Czy spowoduje to jakiś problem?
— ananth

9

To rozwiązało mój problem:

mkdir /var/run/mysqld

touch /var/run/mysqld/mysqld.sock

chown -R mysql /var/run/mysqld

/etc/init.d/mysql restart


1
po zastosowaniu tych kroków moja baza danych zostanie usunięta. Co teraz zrobię?
— Amit Yadav,

7

Rozwiązałem problem w następujący sposób:

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

W innym kontekście napotkałem to, ponieważ uruchomienie demona mysql nie powiodło się. Uruchom demona za pomocą polecenia - mysqld starta następnie spróbuj uruchomić usługę.


2

Miałem ten sam komunikat o błędzie i tę samą pustkę w plikach dziennika. W moim pliku konfiguracyjnym (my.cnf) podałem, że chcę używać tabel myisam, dodając ten wiersz w sekcji [mysqld]:

default-table-type = myisam

Po aktualizacji mysql wydaje się, że powoduje to, że mysql się nie uruchamia. Zmieniłem to na:

default-storage-engine = myisam

a teraz wszystko działa dobrze.


1

Pomocne może być również zwiększenie dostępnej pamięci RAM poprzez dodanie nowej przestrzeni wymiany. Kroki są tutaj

Upewnij się, że utworzyłeś / zamieniasz plik o rozmiarze mniejszym niż dostępne miejsce pokazane przez

df -h

Na przykład dla mnie wynikiem działania df-h było:

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

Więc stworzyłem używając 2 G.

sudo fallocate -l 2G /swapfile

A potem po prostu uruchom usługę

sudo /etc/init.d/mysql restart

Mam nadzieję że to pomoże. Wszystkiego najlepszego.


1

Moje rozwiązanie:

Sprawdź, czy we wszystkich /etc/rc1.d ... /etc/rc5.d skrypt mysql zaczyna się od S (Ex S10mysql), a nie K AS K10mysql.

Objaśnienie: K prefiks K ładuje się z zatrzymaniem, rodzaj usługi zabijania; a prefiks S zaczyna się od parametru początkowego.

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

W moim przypadku była to kwestia miejsca. Sprawdź, czy masz wystarczająco dużo miejsca.

od /var/log/mysql/error.logDostałem kilka wskazówek z dwóch linii:

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'

Widziałem, że to kwestia miejsca.

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

Stąd widziałem, że na serwerze wirtualnym nie ma wystarczającej ilości miejsca /dev/mapper/server1--osticket--vg-root 8.3G 7.9G 0 100% /. Pomyślałem o migracji lub powiększeniu dysku wirtualnego, ale postanowiłem najpierw usunąć niepotrzebne pliki.

Musiałem więc wyczyścić pamięć podręczną i pliki, które nie były potrzebne:

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

Następnie nie zapomnij usunąć uszkodzonych plików dziennika mysql. Zostaną wygenerowane ponownie po ponownym uruchomieniu mysql

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

Sprawdź swoją usługę serwera mysql i prawdopodobnie jest ona uruchomiona

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#

Sprawa zamknięta. Mam nadzieję, że to pomoże.


0

Usuń plik /var/lib/mysql/.run-mysql_upgrade i powinien się uruchomić

;)

"Z dużą mocą przychodzi duża odpowiedzialność"


0

Miałem ten problem kiedy ustawić max_allowed_packet = 0.5Mw /etc/mysql/my.cnf.

Rozwiązałem to, zmieniając max_allowed_packetna 1M.


0

Następujące polecenie rozwiązuje mój problem i mysql może się po nim uruchomić. (W niektórych przypadkach może być użyteczny)

chown -R mysql: /var/lib/mysql
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.