2013-01-06 27 views
5

Dobra, rozejrzałem się, ale jestem bardzo zdezorientowany z powodu problemu. Wybacz mi, jeśli to coś głupiego. : * S Używam 32-bitowego Debiana 6.0.6.Nie można uruchomić mysqld i błąd mysql 2002

[email protected]:~# service mysql start 
    Starting MySQL database server: mysqld . . . . . . . . . . . . . . failed! 

Usługa nie uruchamia się.

[email protected]:~# mysql 
    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) 

I to jest błąd podany podczas uruchamiania polecenia mysql. Czy jest to błąd, ponieważ nie można uruchomić mysqld? Czy jest jeszcze inny powód?

Poszedłem do katalogu,/var/mysqld/i nie było pliku o nazwie mysqld.sock. Czy to jest problem, czy też jestem idiotą? hahah. Każda pomoc będzie bardzo ceniona. Dziękuję za Twój czas.

EDIT: Wydaje się również, że logi związane z mysql, takie jak mysql.log i mysql.err nie mają dla nich żadnej wartości, są puste. Ponadto, mam chmod 777'd wszystkich katalogów, w których działa mysql. Usługa nadal odmawia działania.

+0

Look w dzienniku, aby dowiedzieć się, co nie udało się./var/log/mysql prawdopodobnie. (nie pamiętam, gdzie debian to ujął) –

+0

W tym katalogu nie ma żadnych plików. Jednak zamierzam zbadać, gdzie znajduje się plik. – DrDeviation

+0

Sprawdź w /etc/my.cnf, aby dowiedzieć się, gdzie została zdefiniowana ścieżka pliku dziennika. –

Odpowiedz

8

Spróbuj wyśledzić błąd nieco inaczej. Uruchom MySQL na pierwszym planie.

mysqld_safe --log-error=/var/log/mysql.err 

ta powinna produkować dziennik z pewnymi szczegółami w /var/log/mysql.err nadzieją i dodanie szczegółów do Twojego pytania jeśli w przypadku moje rozwiązanie poniżej nie działa, a ktoś inny może pomóc.

Możesz otrzymać błąd o błędzie mysqld_safe: command not found, a jeśli to zrobisz, użyj polecenia , aby je znaleźć.

locate mysqld_safe 

Dzięki temu dowiesz się, gdzie on jest. Na przykład, jeśli zwróci /usr/bin/mysqld_safe, uruchom polecenie

/usr/bin/mysqld_safe --log-error=/var/log/mysql.err 

Gdybym miał zgadywać, znajdziesz błąd o pthreads.

InnoDB: Error: pthread_create returned 12 

Jeśli jest to przypadek, wygodnym rozwiązaniem jest wyłączenie InnoDB dla MySQL. Prawdopodobnie nie będziesz tego potrzebował, więc wyłącz to w konfiguracji.

Aby wyłączyć InnoDB, edytować plik konfiguracyjny MySQL na /etc/mysql/my.cnf i dodać do niego

skip-innodb 

Teraz uruchom MySQL

/etc/init.d/mysql start 
+4

Prawdopodobnie nie potrzebujesz InnoDB? Żartujesz, prawda? Z dwóch podstawowych opcji silnika, MyISAM i InnoDB, ten drugi jest lepszy pod niemal każdym względem od MySQL 5.6. Jeśli nie instalujesz jakiegoś starożytnego oprogramowania, InnoDB jest niezbędny. – Zenexer

0

miałem ten sam

mam odinstalować zlib1g-dev i wszystko poszło dobrze

+3

Co spowodowało, że zdecydowałeś się odinstalować 'zlib1g-dev'? Podaj więcej kontekstów niż "Zrobiłem X lub Y". – Jesse

3

Miałem ten sam problem.

Katalog/tmp nie był writbale, więc MYSQL nie mógł zapisać potrzebnego pliku.

Wystarczy to zrobić:

chmod 777 /tmp 

i restart mysql

/etc/init.d/mysql start 
+0

Też miałem ten problem i to rozwiązanie naprawiło to dla mnie. W moim przypadku mój cały katalog '/ tmp' został w jakiś sposób usunięty. Po odtworzeniu zrobiłem "chmod" i zadziałało. –

+0

Pojawia się błąd '[FAIL] /etc/init.d/mysql: BŁĄD: Partycja z/var/lib/mysql jest zbyt pełna! ... nie powiodło się! ' – maxisme

+0

Rozwiązane: spróbuj' sudo /etc/init.d/mysql start' nadal pojawia się poprzedni błąd wspomniany w pytaniu ... – maxisme

1

miałem ten sam problem przez kilka dni, a to była moja sieć (DHCP) wraz z konfiguracją mysql (które zawsze eksperyment z).

To może pomóc:

  • otwarty /etc/mysql/my.cnf
  • znaleźć bind-address i upewnij się, że adres IP jest poprawny lub wykomentowane jak tak #bind-address