GNU/Linux >> Znalost Linux >  >> Linux

chyba:'Nelze se připojit k místnímu serveru MySQL přes soket '/var/run/mysqld/mysqld.sock' (2)' -- Chybí /var/run/mysqld/mysqld.sock

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 nebo ps aux | grep mysql | grep -v grep
      • Za předpokladu, že ID procesu je 4969 ukončete kill -9 4969

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


Linux
  1. Jak Linux zpracovává více po sobě jdoucích oddělovačů cest (/home////username///soubor)?

  2. Rozdíl mezi /var/log/messages, /var/log/syslog a /var/log/kern.log?

  3. Chyba serveru MySQL – „Nelze vytvořit nové vlákno (chyba 11)“

  1. Nelze se připojit k místnímu serveru MySQL přes soket '/var/run/mysqld/mysqld.sock' v Ubuntu 12.04.5 LTS

  2. mysqld_safe mysqld ze souboru pid /var/run/mysqld/mysqld.pid zabránit restartování serveru

  3. NGINX:connect() to unix:/var/run/php7.0-fpm.sock se nezdařilo (2:Žádný takový soubor nebo adresář)

  1. Jaké jsou významy /usr/sbin, /usr/local/sbin a /usr/local/bin?

  2. Jak se dostanu do Postgresu, když dostanu chybu o /var/run/postgresql/.s.PGSQL.5432?

  3. Měly by weby žít ve /var/ nebo /usr/ podle doporučeného použití?