Mam prosty serwer WWW (Debian 6.0 x86, DirectAdmin z 1 GB pamięci i wciąż 10 GB wolnego miejsca, mySQl wersja 5.5.9), jednak serwer mySQL ciągle się zawiesza i muszę zabić wszystkie procesy mySQL, aby móc go zrestartować jeszcze raz.
/var/log/mysql-error.log
wynik:
130210 21:04:26 InnoDB: Using Linux native AIO
130210 21:04:34 InnoDB: Initializing buffer pool, size = 128.0M
130210 21:05:42 InnoDB: Completed initialization of buffer pool
130210 21:05:48 InnoDB: Initializing buffer pool, size = 128.0M
130210 21:06:22 InnoDB: Initializing buffer pool, size = 128.0M
130210 21:06:27 mysqld_safe mysqld from pid file /usr/local/mysql/data/website.pid ended
130210 21:06:29 mysqld_safe mysqld from pid file /usr/local/mysql/data/website.pid ended
130210 21:07:22 InnoDB: Completed initialization of buffer pool
130210 21:07:51 mysqld_safe mysqld from pid file /usr/local/mysql/data/website.pid ended
130210 21:08:33 InnoDB: Completed initialization of buffer pool
130210 21:12:03 [Note] Plugin 'FEDERATED' is disabled.
130210 21:12:47 InnoDB: The InnoDB memory heap is disabled
130210 21:12:47 InnoDB: Mutexes and rw_locks use InnoDB's own implementation
130210 21:12:47 InnoDB: Compressed tables use zlib 1.2.3
130210 21:12:47 InnoDB: Using Linux native AIO
130210 21:13:11 InnoDB: highest supported file format is Barracuda.
130210 21:13:23 InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: The log sequence number in ibdata files does not match
InnoDB: the log sequence number in the ib_logfiles!
130210 21:14:05 InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
130210 21:17:53 InnoDB: Unable to open the first data file
InnoDB: Error in opening ./ibdata1
130210 21:17:53 InnoDB: Operating system error number 11 in a file operation.
Znalazłem tutaj temat na stronie mySQL , jednak nie ma na to rozwiązania.
Jakieś pomysły?
Odpowiedzi:
inne podejście z jednego komentarza na tym samym blogu:
przez http://www.webhostingtalk.com/archive/index.php/t-1070293.html
źródło
service mysql restart
nie pokazywał już uruchomionego procesu, alelsof
go znalazł. Zabiłem go,service mysql start
a teraz powódź procesu nieudanych e-maili może zatrzymać. Wielkie dzięki.z Ubuntu 14.04. Ten problem występuje podczas próby ponownego uruchomienia za pośrednictwem
Zamiast tego spróbuj
źródło
service job start
, w przeciwnym razie, jeśli uruchomisz go za pomocą skryptu init.d, Upstart nie będzie o nim wiedział i może spróbować uruchomić inną instancję. (Przynajmniej tak jest w przypadku domyślnych skryptów inicjujących MySQL.)service
nazwach uzupełniających tabulatory . Może przesłać prośbę o funkcję do Canonical za pomocą narzędzia do śledzenia błędów?Najczęstszą przyczyną tego problemu jest próba uruchomienia MySQL, gdy jest już uruchomiony.
Aby rozwiązać ten problem, zabij wszystkie działające instancje MySQL, a następnie uruchom go ponownie przy użyciu normalnych skryptów startowych, np
service mysql start
.Nie próbuj uruchamiać MySQL ręcznie, gdy używasz wersji z pakietami dystrybucyjnymi, chyba że jesteś przygotowany na świat bólu.
źródło
however the mySQL server keeps crashing
- Nie uruchamiam ponownie MySQL. Po prostu ulega awarii, po czym oczywiście muszę go ponownie uruchomić. ;-)Rozwiązanie
wykonaj kopię oryginalnych plików (ibdata1, ib_logfile0, ib_logfile1 ...).
http://cglreport.zhenhua.info/2008/08/mysql-error-unable-to-lock-ibdata1.html
źródło
Pomogło mi to rozwiązać:
Usuń wszystkie pliki ibdata i pozwól mysql je utworzyć.
zatrzymaj mysql:
przejdź do biblioteki mysql:
przenieś gdzieś pliki innodb na wypadek, gdyby były potrzebne:
uruchom mysql:
źródło
Przyszedł tutaj z googlingu tego samego powtarzającego się błędu, ale z kodem błędu 13 (
InnoDB: Unable to lock ./ibdata1, error: 13
). Po wypróbowaniu wielu rozwiązań w Internecie wymyśliłem takie, które mi pomogło (apparmor!)Dodaj te wiersze do konfiguracji
/etc/apparmor.d/usr.sbin.mysqld
(i ponownie załaduj apparmor i mysql, oczywiście):Główne różnice między często rozwiązaniami: dwie reguły (dla samego katalogu i dla wszystkich plików w środku, zwróć uwagę na podwójne
**
) ik
opcja pozwalająca mysqlowi blokować pliki.Mam nadzieję, że komuś to pomoże.
źródło
/etc/apparmor.d/local/usr.sbin.mysqld
. Utwórz plik, jeśli nie istnieje. Aby uzyskać więcej informacji, zobacz/etc/apparmor.d/local/README
Sprawdź miejsce, aby upewnić się, że jest w 100%
Jak gdyby był pełny, nie utworzy pliku .sock.
źródło
Sprawdź, czy masz
pid-file
parametr w[mysql]
sekcjimy.cnf
pliku. Jeśli nie jest obecny,unable to lock ...ibdata1.. error:1
nastąpi.źródło
Proste, ale szybsze niż w przypadku „cp -a”. I pomógł, gdy „cp -a” i wszystko inne nie mogło.
service mysql stop && pkill -f mysql
Pozbądź się wszystkich procesów mysql
vi /etc/mysql/my.cnf
Zmień parametr datadir = / var / lib / mysql na datadir = / var / lib / mysql2 (lub po prostu dodaj, jeśli nie masz)
mv /var/lib/mysql /var/lib/mysql2
Zmień nazwę datadir na nową nazwę
service mysql start
Przygotuj tamburyn
źródło
Jeśli żadne z pozostałych rozwiązań nie działa, problem prawdopodobnie wynika z błędnej konfiguracji AppArmor.
Więc po prostu zrób:
a następnie uruchom ponownie MySQL (zauważ, jak szybko się zrestartuje).
Zauważyłem brakujący plik związany z AppArmor podczas wykonywania:
Dlatego pomyślałem, że coś jest nie tak z konfiguracją AppArmor.
źródło