Strona 1 z 2

[+] mysql - skasowany plik /var/run/mysqld/mysqld.sock

: 07 lutego 2010, 19:55
autor: witek000
Cześć.
Mam komputer z zainstalowanym Debianem 5.0.4, na którym najprawdopodobniej root skasował plik /var/run/mysqld/mysqld.sock. Przy probie uruchomienia mysql pojawia się komunikat:

Kod: Zaznacz cały

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Czy można jakoś ten plik odzyskać albo stworzyć od nowa? W bazie nie ma żadnych cennych informacji ale nie chciałbym robić ponownej instalacji systemu a tylko to przychodzi mi na myśl.

Kod: Zaznacz cały

alfa:/var/run/mysqld# /etc/init.d/mysql restart
Stopping MySQL database server: mysqld.
/etc/init.d/mysql: WARNING: /etc/mysql/my.cnf cannot be read. See README.Debian.gz (warning).
Starting MySQL database server: mysqld . . . . . . . . . . . . . . failed!

alfa:/var/run/mysqld# touch  /var/run/mysqld/mysqld.sock
alfa:/var/run/mysqld# mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111)
alfa:/var/run/mysqld# 
nie pomogło, cały czas jest ten sam blad

A gdzie szukać tego pliku? Próbowałem właśnie przeinstalować mysql i dostałem coś takiego:

Kod: Zaznacz cały

alfa:/etc/mysql# aptitude install mysql-server-5.0
Czytanie list pakietów... Gotowe
Budowanie drzewa zależności       
Odczyt informacji o stanie... Gotowe
Odczyt dodatkowych informacji o stanie      
Inicjalizacja stanów pakietów... Gotowe
Odczyt opisów zadań... Gotowe          
Następujące częściowo zainstalowane pakiety zostaną skonfigurowane:
  mysql-server-5.0 
0 pakietów aktualizowanych, 0 instalowanych, 0 do usunięcia i 0 nie aktualizowanych.
Do pobrania 0B archiwów. Zajęte po rozpakowaniu: 0B.
Zapisywanie dodatkowych informacji o stanie... Gotowe
Konfigurowanie mysql-server-5.0 (5.0.51a-24+lenny2+spu1) ...
Stopping MySQL database server: mysqld.
/var/lib/dpkg/info/mysql-server-5.0.postinst: line 144: /etc/mysql/conf.d/old_passwords.cnf: Nie ma takiego pliku ani katalogu
dpkg: błąd przetwarzania mysql-server-5.0 (--configure):
 podproces post-installation script zwrócił kod błędu 1
Wystąpiły błędy podczas przetwarzania:
 mysql-server-5.0
E: Sub-process /usr/bin/dpkg returned an error code (1)
W czasie instalacji wystąpiły problemy. Próba naprawy:
Konfigurowanie mysql-server-5.0 (5.0.51a-24+lenny2+spu1) ...
Stopping MySQL database server: mysqld.
/var/lib/dpkg/info/mysql-server-5.0.postinst: line 144: /etc/mysql/conf.d/old_passwords.cnf: Nie ma takiego pliku ani katalogu
dpkg: błąd przetwarzania mysql-server-5.0 (--configure):
 podproces post-installation script zwrócił kod błędu 1
Wystąpiły błędy podczas przetwarzania:
 mysql-server-5.0
Czytanie list pakietów... Gotowe                    
Budowanie drzewa zależności       
Odczyt informacji o stanie... Gotowe
Odczyt dodatkowych informacji o stanie       
Inicjalizacja stanów pakietów... Gotowe
Odczyt opisów zadań... Gotowe          

alfa:/etc/mysql# 
I próba naprawy:

Kod: Zaznacz cały

alfa:/etc/mysql# dpkg --configure mysql-server-5.0
Konfigurowanie mysql-server-5.0 (5.0.51a-24+lenny2+spu1) ...
Stopping MySQL database server: mysqld.
/var/lib/dpkg/info/mysql-server-5.0.postinst: line 144: /etc/mysql/conf.d/old_passwords.cnf: Nie ma takiego pliku ani katalogu
dpkg: błąd przetwarzania mysql-server-5.0 (--configure):
 podproces post-installation script zwrócił kod błędu 1
Wystąpiły błędy podczas przetwarzania:
 mysql-server-5.0
alfa:/etc/mysql# 

: 07 lutego 2010, 21:08
autor: winnetou
Dziękuje...

: 07 lutego 2010, 23:10
autor: winnetou
Dziękuje...

: 09 marca 2010, 02:15
autor: Karol Mrozik

Kod: Zaznacz cały

apt-get remove mysql-server-5.0 

Kod: Zaznacz cały

apt-get install mysql-server-5.0 
Zobacz czy to pomoże

: 09 marca 2010, 02:24
autor: fnmirk
witek000, przedstaw co zawiera plik:

Kod: Zaznacz cały

cat /etc/apt/sources.list
I wynik:

Kod: Zaznacz cały

uname -r
Karol Mrozik, kolega używa aptitude, przedstawiaj odpowiednie polecenia. Użycie innego narzędzia do zarządzania pakietami, może go wpędzić w większe kłopoty.

: 09 marca 2010, 02:57
autor: Karol Mrozik
Spróbuj w my.cnf zmienić socket na np.

Kod: Zaznacz cały

[mysqld]
socket =  /tmp/mysql.sock


I tak ma kłopoty ponieważ mysql nie startuje ;-)

: 09 marca 2010, 09:04
autor: lessmian2
[quote="Karol Mrozik"]I tak ma kłopoty ponieważ mysql nie startuje ]
Co nie znaczy że powinien mieć jeszcze większe problemy.

Zrobiłem u siebie taki sam test z usunięciem socketa:

Kod: Zaznacz cały

logger-:/home/tom# rm /var/run/mysqld/mysqld.sock 

logger:/home/tom# mysql -p
Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
logger:/home/tom# mysqladmin shutdown -h 127.0.0.1 -p
Enter password: 
logger:/home/tom# /etc/init.d/mysql start
Starting MySQL database server: mysqld.
Checking for corrupt, not cleanly closed and upgrade needing tables..
logger:/home/tom# mysql -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 28
Server version: 5.0.51a-24+lenny2+spu1 (Debian)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> quit
Bye
Znaczy że wystarczy zatrzymać MySQL'a i uruchomić go ponownie :-> Nic nie trzeba reinstalować itp. Trzeba pamiętać że łącząc się do MySQL'a na 'localhost' używamy uniksowych socketów, a łącząc się na '127.0.0.1' używamy gniazd sieciowych, co umożliwia nam pracę na bazie, mimo usuniętego pliku.

: 19 marca 2010, 09:07
autor: witek000
Cześć.
Wstrzymanie i uruchomienie ponownie nic nie dawało, mysql się nie uruchamiał, dostałem trochę inną podpowiedź, a utworzenie tego pliku(/etc/mysql/conf.d/old_passwords.cnf) nic nie daje?

Przykładowa zawartość:

Kod: Zaznacz cały

# created by debconf
[mysqld]
old_passwords = false

socjopata# ls -l
razem 4
-rw-r--r-- 1 root root 52 2009-08-01 old_passwords.cnf"
Stworzyłem ten plik, zrestartowałem i zadziałało.

: 19 marca 2010, 09:49
autor: lessmian2
A przeczytałeś dokładnie co napisałem?W szczególności, czy restartowałeś bazę tak:

Kod: Zaznacz cały

mysqladmin shutdown -h 127.0.0.1 -p
?

: 19 marca 2010, 10:01
autor: witek000
Faktycznie nie zauważyłem tego, w takim razie mamy dwa rozwiązania tego problemu.