Moja instalacja MySQL jest zepsuta. Jak całkowicie go zmienić?

20

Oto następujące polecenia, które wykonałem.

$ sudo service mysql start
mysql start/running

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

$ aptitude search mysql |grep ^i
i   libapache2-mod-auth-mysql       - Module Apache 2 pour l'authentification vi
i   libdbd-mysql-perl               - Perl5 database interface to the MySQL data
i   libmysqlclient16                - MySQL database client library             
i   mysql-client-5.1                - MySQL database client binaries            
i   mysql-client-core-5.1           - MySQL database core client binaries       
i   mysql-common                    - MySQL database common files, e.g. /etc/mys
i   mysql-server-5.1                - MySQL database server binaries and system 
i   mysql-server-core-5.1           - MySQL database server binaries            
i   php5-mysql                      - MySQL module for php5                     
jałmużna
źródło
alm - znajdź swój plik mysql.log cat /var/log/mysql.logi edytuj swoją odpowiedź za pomocą tego pliku ....
hhlp
5
Podoba mi się sposób, w jaki użyłeś grep ^ tam. Całkiem inteligentny.
Luis Alvarado,
Co to dokładnie robi? aptitude to narzędzia instalacyjne.
user4951,
@JimThio To jest, aby znaleźć zainstalowane pakiety związane z tym pytaniem.
Przywróć Monikę - ζ--

Odpowiedzi:

16

Przed ponowną instalacją sprawdź / var / log / mysql w poszukiwaniu plików dzienników, które mogą zawierać wskazówki, dlaczego mysql nie działa. Jeśli nie ma dzienników, dziennik do pliku może nie być włączony w konfiguracji: Skonfiguruj dziennik błędów MySQL

Aby ponownie zainstalować dowolną paczkę, sprawdź zainstalowaną wersję za pomocą

dpkg -l|grep mysql-server

następnie użyj wersji 5.7

sudo apt-get install mysql-server-5.7 --reinstall

Jeśli to nie pozwala na rekonfigurację pakietu, którego możesz użyć

sudo dpkg-reconfigure mysql-server-5.7
Ciaran Liedeman
źródło
sudo dpkg-rekonfiguracja mysql-server-5.1 wykonał dla mnie lewę, kiedy uaktualniłem z 11.10 do 12.04 i mysqld nie chce się uruchomić i byłem zmuszony ręcznie sudo mysqld
Hanynowsky
7

BŁĄD 2002 (HY000): Nie można połączyć się z lokalnym gniazdem przelotowym serwera MySQL „/ tmp / mysql.sock” (2)

W instalacjach MySQL można określić, gdzie będziemy mieć gniazdo dla połączeń lokalnych. Podczas wykonywania aktualizacji nierzadko pojawia się błąd „Nie można połączyć się z lokalnym serwerem MySQL przez gniazdo”. Zobaczmy, jak rozwiązać ten problem.

Błąd wygląda następująco:

Mysql-u root-p
Enter password:
ERROR 2002 (HY000): Can not connect to local MySQL server-through socket '/ tmp / mysql.sock' (2)

przez psmożemy zobaczyć, czy jest określony przez parametr i miejsce, w którym się znajduje:

# ps -fea | grep mysqld
mysql    17661 14003  1 Feb19 ?        00:24:59 /usr/local/mysql-percona/libexec/mysqld --basedir=/usr/local/mysql-percona --datadir=/var/data/mysql/datadir/data --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --socket=/var/lib/mysql/mysql.sock --log-error=/var/log/mysqld.log
root     23790  7840  0 09:25 pts/0    00:00:00 grep mysqld

W tym przypadku widzimy, że jest w /var/lib/mysql/mysql.sock. Jeśli nie zostanie znaleziony jako parametr, należy zajrzeć do sekcji mysqld w /etc/my.cnfcelu znalezienia parametru:

grep socket /etc/my.cnf
socket=/var/lib/mysql/mysql.sock

Jeśli wiemy, gdzie to jest, musimy zmodyfikować ten sam plik ( /etc/my.cnf) i dodać klienta sekcja sekcji parametrów:

[client]
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
hhlp
źródło
1
To właśnie zamierzałem udzielić jako odpowiedzi. Wiem już, że to poprawna odpowiedź na prawie wszystkie podobne problemy. Daje +1, gdy znów otrzymam tę umiejętność.
Luis Alvarado,
dzięki za dokładne wyjaśnienie! w moim przypadku nawet jeśli określiłem gniazdo w pliku my.cnf, nie było ono w nim nasłuchiwane (parametry pokazane w „ps” są puste i niemożliwe jest połączenie. obejście: dodaj „protocoll = tcp” do sekcji klienta w my.cnf do
Tapper
2

Dla tych ostatnich:
doszło do podobnego błędu, gdy nie udało mi się zaktualizować pakietu mysql-server, ale znalazłem, że to rozwiązało mój problem . Kiedy sudo apt-get install -fnie działa, spróbuj sudo apt-get purge mysql*. Teraz możesz ponownie zainstalować serwer mysql.

artificerpi
źródło
1
pamiętaj, że sudo apt-get purge mysqlnie zachowa twoich baz danych
Nelson Owalo
1

Jednym z problemów, na które napotykam, jest wiedza, z którą wersją mam problemy. To był fajny pomysł:

$ aptitude search mysql |grep ^i

Ale oto, co znalazłem, było kluczowe w tym problemie:

$ apt-get --reinstall install mysql-server-5.x

(gdzie x to wersja. Jeśli nie dodasz tego, możesz pracować z niewłaściwym dpkg.

Netsec
źródło
0

To zadziałało dla mnie

sudo apt purge mysql*
sudo apt autoremove
sudo apt autoclean
sudo apt install mysql-server

Opis

1) Pierwsze polecenie usuwa wszystko związane z MySQL z ich plikami konfiguracyjnymi.

2) Drugi usuwa te niepotrzebne już pakiety.


Refrences [!]:

1) DigitalOcean

A - O
źródło