Mój problem zaczął się od tego, że nie mogę zalogować się jako root w mojej instalacji mysql. Próbowałem uruchomić mysql bez włączonych haseł ... ale za każdym razem, gdy uruchamiałem polecenie
# mysqld_safe --skip-grant-tables &
Nigdy nie odzyskam monitu. Próbowałem postępować zgodnie z tymi instrukcjami, aby odzyskać hasło .
Ekran wygląda tak:
root@jj-SFF-PC:/usr/bin# mysqld_safe --skip-grant-tables
120816 11:40:53 mysqld_safe Logging to syslog.
120816 11:40:53 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
i nie pojawia się monit o rozpoczęcie wpisywania poleceń SQL w celu zresetowania hasła.
Gdy go zabiję, naciskając CTRL+ C, pojawia się następujący komunikat:
error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'
Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!
Jeśli ponowię polecenie i pozostawię je wystarczająco długo, otrzymam następującą serię wiadomości:
root@jj-SFF-PC:/run/mysqld# 120816 13:15:02 mysqld_safe Logging to syslog.
120816 13:15:02 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
120816 13:16:42 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
[1]+ Done mysqld_safe --skip-grant-tables
root@jj-SFF-PC:/run/mysqld#
Ale jeśli spróbuję zalogować się jako root, wykonując:
# mysql -u root
Otrzymuję następujący komunikat o błędzie:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Sprawdziłem i /var/run/mysqld/mysqld.sock
plik nie istnieje. Folder ma, ale nie plik.
Nie wiem też, czy to pomaga, czy nie, ale pobiegłem find / -name mysqld
i wymyśliłem:
/var/run/mysqld - folder
/usr/sbin/mysqld - file
/run/mysqld - folder
Jestem nowy w Linuksie i MySQL, więc nie wiem, czy to normalne, czy nie. Ale dołączam te informacje na wszelki wypadek.
W końcu postanowiłem odinstalować i ponownie zainstalować mysql.
apt-get remove mysql-server
apt-get remove mysql-client
apt-get remove mysql-common
apt-get remove phpmyadmin
Po ponownej instalacji wszystkich pakietów w tej samej kolejności jak powyżej, podczas instalacji phpmyadmin, otrzymałem ten sam błąd:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Więc próbowałem ponownie odinstalować / zainstalować ponownie. Tym razem po odinstalowaniu pakietów ręcznie zmieniłem nazwy wszystkich plików i katalogów mysql na mysql.bad
odpowiednie lokalizacje.
/var/lib/mysql
/var/lib/mysql/mysql
/var/log/mysql
/usr/lib/perl5/DBD/mysql
/usr/lib/perl5/auto/DBD/mysql
/usr/lib/mysql
/usr/bin/mysql
/usr/share/mysql
/usr/share/dbconfig-common/internal/mysql
/etc/init.d/mysql
/etc/apparmor.d/abstractions/mysql
/etc/mysql
Potem spróbowałem ponownie zainstalować mysql-server
i mysql-client
jeszcze raz. Ale zauważyłem, że nie monituje mnie o hasło. Czy nie należy prosić o hasło administratora?
/var/run/mysqld/mysqld.sock
brakuje. Problem, który połączyłeś, ma ten plik.