Zkuste tento příkaz,
sudo service mysql start
Chcete-li najít všechny soketové soubory ve vašem systému, spusťte:
sudo find / -type s
Můj serverový systém Mysql měl otevřený soket v /var/lib/mysql/mysql.sock
Jakmile zjistíte, kde se soket otevírá, přidejte nebo upravte řádek do souboru /etc/my.cnf s cestou k souboru soketu:
socket=/var/lib/mysql/mysql.sock
Někdy spouštěcí skript systému, který spustil spustitelný soubor příkazového řádku, uvádí příznak --socket=path
. Tento příznak by mohl přepsat umístění my.cnf, což by vedlo k tomu, že soket nebude nalezen tam, kde by měl být soubor my.cnf. Když se pak pokusíte spustit klienta příkazového řádku mysql, přečte my.cnf, aby našel soket, ale nenajde ho, protože se liší od místa, kde jej server vytvořil. Takže pokud vám nezáleží na tom, kde se soket nachází, měla by fungovat pouze změna souboru my.cnf tak, aby odpovídal.
Poté zastavte proces mysqld. Jak to uděláte, se bude lišit podle systému.
Pokud jste super uživatel v linuxovém systému, zkuste jednu z následujících možností, pokud neznáte konkrétní metodu, kterou vaše nastavení Mysql používá:
service mysqld stop
/etc/init.d/mysqld stop
mysqladmin -u root -p shutdown
- Některé systémy nejsou nastaveny tak, aby měly elegantní způsob, jak zastavit mysql (nebo z nějakého důvodu mysql nereaguje) a můžete vynutit ukončení mysql buď:
- Jeden krok:
pkill -9 mysqld
- Dva kroky (nejméně preferované):
- Najděte ID procesu mysql buď s
pgrep mysql
nebops aux | grep mysql | grep -v grep
- Za předpokladu, že ID procesu je
4969
ukončetekill -9 4969
- Najděte ID procesu mysql buď s
- Jeden krok:
Až to uděláte, možná budete chtít hledat soubor pid v /var/run/mysqld/
a smazat jej
Ujistěte se, že oprávnění na vašem soketu jsou taková, aby do něj mohl číst/zapisovat jakýkoli uživatel mysqld, na kterém běží. Snadným testem je otevřít jej pro plné čtení/zápis a zjistit, zda stále funguje:
chmod 777 /var/run/mysqld/mysqld.sock
Pokud se tím problém vyřeší, můžete upravit oprávnění a vlastnictví soketu podle potřeby na základě nastavení zabezpečení.
Také adresář, ve kterém se soket nachází, musí být dostupný pro uživatele spouštějícího proces mysqld.
K této chybě dochází v důsledku vícenásobných instalací mysql. Spusťte příkaz:
ps -A|grep mysql
Zabijte proces pomocí:
sudo pkill mysql
a poté spusťte příkaz:
ps -A|grep mysqld
Tento proces také ukončíte spuštěním:
sudo pkill mysqld
Nyní jste plně připraveni, stačí spustit následující příkazy:
service mysql restart
mysql -u root -p
Mějte znovu velmi dobře fungující mysql