erro: ‘Não é possível conectar ao servidor MySQL local através do socket’ /var/run/mysqld/mysqld.sock ‘(2)’

Meu problema começou comigo não conseguir logar como root mais na minha instalação do mysql. Eu estava tentando executar o mysql sem senhas ativadas … mas sempre que eu corri o comando

# mysqld_safe --skip-grant-tables & 

Eu nunca receberia o aviso de volta. Eu estava tentando seguir estas instruções para recuperar a senha .

A canvas apenas se parece com isso:

 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 

e eu não recebo um aviso para começar a digitar os comandos SQL para redefinir a senha.

Quando eu mato pressionando CTRL + C , recebo a seguinte mensagem:

 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! 

Se eu repito o comando e o deixo por tempo suficiente, recebo a seguinte série de mensagens:

 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# 

Mas então se eu tentar logar como root fazendo:

 # mysql -u root 

Eu recebi a seguinte mensagem de erro:

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

Eu verifiquei e /var/run/mysqld/mysqld.sock arquivo não não existe. A pasta faz, mas não o arquivo.

Além disso, eu não sei se isso ajuda ou não, mas eu corri find / -name mysqld e veio com:

 /var/run/mysqld - folder /usr/sbin/mysqld - file /run/mysqld - folder 

Eu sou novo no Linux e no MySQL, então não sei se isso é normal ou não. Mas estou incluindo essa informação apenas no caso de isso ajudar.

Eu finalmente decidi desinstalar e reinstalar o mysql.

 apt-get remove mysql-server apt-get remove mysql-client apt-get remove mysql-common apt-get remove phpmyadmin 

Depois de reinstalar todos os pacotes novamente na mesma ordem acima, durante a instalação do phpmyadmin, recebi o mesmo erro:

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

Então eu tentei novamente desinstalar / reinstalar. Desta vez, depois que eu desinstalei os pacotes, eu também mysql.bad manualmente todos os arquivos e diretórios mysql para mysql.bad em seus respectivos locais.

 /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 

Então eu tentei reinstalar o mysql-server e o mysql-client novamente. Mas notei que isso não me pede uma senha. Não é suposto pedir uma senha de administrador?

Para localizar todos os arquivos de soquete no seu sistema, execute:

 sudo find / -type s 

Meu sistema de servidor Mysql tinha o soquete aberto em /var/lib/mysql/mysql.sock

Quando você encontrar o local onde o soquete está sendo aberto, adicione ou edite a linha em seu arquivo /etc/my.cnf com o caminho para o arquivo de soquete:

 socket=/var/lib/mysql/mysql.sock 

Às vezes, o script de boot do sistema que executou o executável da linha de comando especifica um sinalizador --socket=path . Esse sinalizador pode replace o local my.cnf, o que resultaria em um soquete não encontrado onde o arquivo my.cnf indica que deveria ser. Então, quando você tentar executar o cliente de linha de comando mysql, ele lerá my.cnf para localizar o soquete, mas ele não o encontrará, já que ele se desvia de onde o servidor criou um. Então, a menos que você se importe onde o soquete reside, basta alterar o my.cnf para corresponder.

Então, pare o processo mysqld. Como você faz isso irá variar de acordo com o sistema.

Se você é super usuário no sistema linux, tente um dos seguintes se você não souber o método específico que sua configuração do Mysql usa:

  • service mysqld stop
  • /etc/init.d/mysqld stop
  • mysqladmin -u root -p shutdown
  • Alguns sistemas não são configurados para ter uma maneira elegante de parar o mysql (ou por algum motivo o mysql não responde) e você pode forçar o mysql a terminar com:
    • Um passo: pkill -9 mysqld
    • Dois passos (menos preferido):
      • Encontre o id do processo do mysql com pgrep mysql ou ps aux | grep mysql | grep -v grep ps aux | grep mysql | grep -v grep
      • Assumindo que o ID do processo é 4969 encerre com kill -9 4969

Depois de fazer isso, você pode querer procurar por um arquivo pid em /var/run/mysqld/ e deletá-lo

Certifique-se de que as permissions no seu socket sejam tais que qualquer usuário que esteja executando o mysqld possa ler / escrever para ele. Um teste fácil é abri-lo para ler / escrever e ver se ainda funciona:

 chmod 777 /var/run/mysqld/mysqld.sock 

Se isso resolver o problema, você poderá adaptar as permissions e a propriedade do soquete conforme necessário com base nas configurações de segurança.

Além disso, o diretório em que o soquete reside deve ser acessado pelo usuário que está executando o processo mysqld.

Tente este comando

 sudo service mysql start 

Este erro ocorre devido a várias instalações do mysql. Execute o comando:

 ps -A|grep mysql 

Mate o processo usando:

 sudo pkill mysql 

e, em seguida, execute o comando:

 ps -A|grep mysqld 

Também mate este processo executando:

 sudo pkill mysqld 

Agora você está totalmente pronto apenas execute os seguintes comandos:

 service mysql restart mysql -u root -p 

Tenho muito bem trabalhando mysql novamente

A solução é muito mais fácil.

  1. Primeiro, você precisa localizar (no Terminal com “sudo find / -type s”) onde seu arquivo mysql.sock está localizado. No meu caso, estava em /opt/lampp/var/mysql/mysql.sock
  2. Acione o Terminal e emita o sudo Nautilus
    Isso inicia seu gerenciador de arquivos com privilégios de superusuário
  3. Do Nautilus navegue até onde seu arquivo mysql.sock está localizado
  4. Clique com o botão direito no arquivo e selecione Make Link
  5. Renomeie o link para mysqld.sock , clique com o botão direito no arquivo e corte .
  6. Vá para /var/run e crie uma pasta chamada mysqld e digite-a
  7. Agora clique com o botão direito e cole o arquivo de link
  8. Voila! Você agora terá um arquivo mysqld.sock em /var/run/mysqld/mysqld.sock 🙂

Apenas precisa iniciar o serviço MySQL após a instalação:

Para o Ubuntu:

 sudo service mysql start; 

Para CentOS ou RHEL:

 sudo service mysqld start; 

Ok, apenas copie e cole estes códigos: Isto deve ser feito no terminal, dentro de um servidor, quando seu database mysql não está instalado corretamente, e quando você está recebendo este erro: ‘Não é possível conectar ao servidor MySQL local através do socket’ / var / run / mysqld / mysqld.sock ‘(2)’.

Pare o MySql

 sudo /etc/init.d/mysqld stop 

Reinicie ou inicie

 sudo /etc/init.d/mysqld restart or sudo /etc/init.d/mysqld start 

Faça um link como esse e dê para o sistema

 ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock 

Execute uma instalação segura que orienta todo o processo que você precisa fazer para configurar o mysql

 /usr/bin/mysql_secure_installation 

Eu enfrentei o mesmo erro e achei que era devido a atualização de pacotes, Então, depois de reiniciar o meu sistema resolvi o erro.

Eu acho que devido a sql bibliotecas / pacotes de atualização que o erro ocorreu, Então tente isso se você estiver fazendo alguma atualização 🙂

Existe um bug no Ubuntu com o MySQL 5.6 e 5.7 onde var/run/mysqld/ desapareceria sempre que o serviço MySQL parasse ou fosse reinicializado. Isso impede que o MySQL seja executado. Encontrou esta solução alternativa, que não é perfeita, mas pelo menos ela é executada após parar / reinicializar:

 mkdir /var/run/mysqld/ chown mysqld /var/run/mysqld/ 

Há muitas razões para este problema, mas às vezes basta reiniciar o servidor mysql, ele irá corrigir o problema.

 sudo service mysql restart 

A resposta da etapa de carga do usuário funcionou para mim. Às vezes é necessário editar o arquivo em /etc/mysql/my.cnf adicionar linha ao cliente

 [client] password = your_mysql_root_password port = 3306 host = 127.0.0.1 socket = /var/lib/mysql/mysql.sock 

* Erro: ‘Não é possível conectar ao servidor MySQL local através do socket’ /var/run/mysqld/mysqld.sock ‘(2)’

soluções

finalmente desinstale e reinstale o mysql. **

  • sudo apt-get remove mysql-server
  • sudo apt-get remove o mysql-client
  • sudo apt-get remove o mysql-common
  • sudo apt-get remove phpmyadmin

em seguida, instale novamente por

  • sudo apt-get install mysql-server-5.6

Após essa operação, 164 MB de espaço em disco adicional serão usados.

  • Você quer continuar? [Y / n] Y pressione YES para instalações completas

…… …….

  • Finalmente você vai ter essas linhas ….

    Configurando o libhtml-template-perl (2.95-1) …

    Configurando o mysql-common-5.6 (5.6.16-1 ~ exp1) … Processando triggers para libc-bin (2.19-0ubuntu6) Processando triggers para ureadahead (0.100.0-16) …

  • E depois

    root @ ubuntu1404: ~ # mysql -u root -p (para cada senha que você deve usar primeiro)

  • Digite a senha:

  • Nota: A senha digitada deve ser igual à senha de tempo de instalação do mysql (como .root, system, admin, rahul etc …)

    Então digite

  • USE rahul_db (nome do database);

Obrigado.**

você pode encontrar o mysqld.sock em /var/run/mysqld se você já instalou o mysql-server pelo sudo apt-get install mysql-server

Talvez alguém enfrentando esse problema. Estou usando o Mysql Workbench no Ubuntu 14 e recebi este erro.

 mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) when trying to connect 

Encontre o seu arquivo de soquete executando sudo find / -type s , no meu caso foi /run/mysqld/mysqld.sock

Então, acabei de criar um link para este arquivo no diretório tmp .

 sudo ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock 

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

em /etc/my.cnf adicione estas linhas:

 [client] socket=/var/lib/mysql/mysql.sock < = this path should be also same as is[mysqld] 

E reinicie o serviço com: service mysql restart

isso funcionou para mim

No meu caso, dois processos mysqld estavam rodando .. matando os processos opcionais usando o pkill -9 mysqld

Se você tem muitos bancos de dados e tabelas em seu sistema, e se você tem o innodb_file_per_table configurado em my.cnf, então seu servidor mysql pode estar sem objects / arquivos abertos (ou melhor, os descritores para esses objects). número com

 open-files-limit = 2048 

e reinicie o mysql. Essa abordagem pode ajudar quando o soquete não é criado, mas realmente isso pode não ser o problema real, há um problema subjacente.

Eu só tive esse problema no Ubuntu 14.10

Acontece que o mysql-server não estava mais instalado (de alguma forma ele havia sido removido), mas eu não poderia simplesmente instalá-lo porque havia alguns pacotes quebrados e problemas / conflitos de dependência.

No final eu tive que reinstalar o mysql

 sudo apt-get remove mysql-client sudo apt-get install mysql-server 

Isso já foi mencionado algumas vezes, mas isso funcionou imediatamente para mim:

serviço mysql restart

Usando o XAMPP no Ubuntu:

  1. Crie uma pasta chamada mysqld dentro do diretório / var / run . Você pode fazer isso usando o comando sudo mkdir /var/run/mysqld .

  2. Crie um link simbólico para o arquivo mysql.sock que é criado pelo servidor XAMPP quando ele é iniciado. Você pode usar o comando sudo ln -s /opt/lampp/var/mysql/mysql.sock /var/run/mysqld/mysqld.sock .

Nota: O arquivo mysql.sock é criado quando o servidor é iniciado e removido quando o servidor é interrompido, portanto, às vezes, o link que você criou pode parecer estar corrompido, mas deve funcionar desde que você tenha iniciado o servidor usando sudo /opt/lampp/lampp start ou qualquer outro meio.

  1. Inicie o servidor se ele ainda não estiver em execução e tente executar o programa novamente.

Boa sorte! Espero que você consiga fugir dessa vez.

Mudar o host para 127.0.0.1 funcionou para mim.

Edite o arquivo em /etc/mysql/my.cnf e adicione a linha mencionada abaixo à seção: client

 [client] port = 3306 host = 127.0.0.1 socket = /var/lib/mysql/mysql.sock 

Depois que você terminar com isso. Execute o seguinte comando.

 sudo service mysql start 

Eu corro meu MySQL em uma máquina virtual no Ubuntu, então o que aconteceu foi quando eu reiniciei meu host e a VM, o IP tinha mudado. Eu tinha configurado mysql para rodar em IP 192.168.0.5 e agora devido a alocação dinâmica de IP, meu novo IP era 192.168.0.8

Se você tiver o mesmo problema basta verificar seu ip com o comando ifconfig .

Verifique sua binding do MySQL com o comando cat /etc/mysql/my.cnf | grep bind-address cat /etc/mysql/my.cnf | grep bind-address

Se ambos os IP são o mesmo, reinstale o seu servidor mysql

Se não, então mude seu IP em /etc/network/interfaces usando nano, vi, vim ou qualquer coisa de sua preferência.

Eu prefiro o sudo nano /etc/network/interfaces

e digite o seguinte

 auto eth0 iface eth0 inet static address 192.168.0.5 netmask 255.255.255.0 

Salve o arquivo de interfaces, reinicie sua interface sudo ifdown eth0 && sudo ifup eth0 substitua “eth0” pela sua interface de rede

Reinicie o sudo service mysql stop MySQL sudo service mysql stop seguido por sudo service mysql start

Se você tem o mesmo problema que o meu, você é bom para ir!

Eu também verificaria a configuração do mysql. Eu estava correndo para este problema com o meu próprio servidor, mas eu estava um pouco apressado e desconfigurou o innodb_buffer_pool_size para minha máquina.

innodb_buffer_pool_size = 4096M

Geralmente funciona bem até 2048, mas eu acho que não tenho a memory necessária para suportar 4 shows.

Eu imagino que isso também poderia acontecer com outras configurações do mysql.

no archlinux eu enfrentei esse erro e o problema era que o mysqld -service não estava rodando.

No entanto, eu não pude habilitar o serviço mysql com o systemctl start mysqld conforme instruído na documentação do Archlinux. Eu acho que o erro foi algo como

mysqld.service não encontrado

Primeiro precisei reiniciar o sistema.

Então eu entrei no comando novamente (e entrei no systemctl enable mysqld ) e agora o mysql foi capaz de encontrar o mysql.sock criado.

Eu tive esse tipo de problema quando redimensionei o droplet em digitalocean. Eu atualizei a versão mysql e funciona para mim. Aqui está o tutorial que eu apliquei – https://serverpilot.io/community/articles/how-to-upgrade-mysql-5.5-to-5.6-on-ubuntu-14.04.html

Eu tentei quase todas as soluções listadas, nenhum funcionou para mim até que eu reiniciei a máquina e, em seguida, o servidor mysql reiniciado quando emiti o comando “service mysql restart”.

No meu caso, o problema era os endereços de bind em /etc/mysql/my.cnf, então:

nano /etc/mysql/my.cnf

busca ligar endereços e remover o específico com o ip do host (não o 127.0.0.1)

Eu tive problema semelhante em um VPS CentOS. Se o MySQL não iniciar ou continuar travando logo após o início, tente estas etapas:

1) Encontre o arquivo my.cnf (o meu estava localizado em /etc/my.cnf) e adicione a linha:

innodb_force_recovery = X

substituindo X por um número de 1 a 6, começando de 1 e incrementando se o MySQL não iniciar. A configuração para 4, 5 ou 6 pode excluir seus dados, por isso, tenha cuidado e leia http://dev.mysql.com/doc/refman/5.7/en/forcing-innodb-recovery.html antes.

2) Reinicie o serviço MySQL. Apenas o SELECT será executado e isso é normal neste momento.

3) Despeje todos os seus bancos de dados / esquemas com o mysqldump, um por um, não comprima os despejos, porque você teria que descompactá-los mais tarde, de qualquer maneira.

4) Mova (ou delete!) Somente os diretórios do bd dentro de / var / lib / mysql, preservando os arquivos individuais na raiz.

5) Pare o MySQL e descomente a linha adicionada em 1). Inicie o MySQL.

6) Recupere todos os bd’s despejados em 3).

Boa sorte!

O arquivo mysql.sock é criado quando o MariaDB inicia e é removido quando o MariaDB é encerrado. Não existirá se o MariaDB não estiver em execução. talvez você não tenha instalado o MariaDB. VOCÊ PODERIA SEGUIR A INSTRUÇÃO ABAIXO: https://www.linode.com/docs/databases/mariadb/how-to-install-mariadb-on-centos-7 BEST

Tente o seguinte em um prompt de terminal:

 sudo mysql 

Depois que você entrar, poderá criar um novo usuário e conceder privilégios que deseja no database específico ao qual ele precisa acessar.

O Mysql 5.7 mudou algumas coisas e por padrão usa o plugin auth_socket (em oposição a mysql_native_password) para o root proteger a conta de ser hackeada. Você pode replace isso configurando o campo de plug-in para root, mas, a menos que tenha uma boa razão, você provavelmente não deve contornar a proteção. Especialmente quando o sudo mysql é mais fácil que o mysql -u root -p .

Eu descobri essa informação – de todos os lugares – de um site de ajuda do Raspberry Pi . Funcionou como um encanto depois que Lubuntu 18.04 me irritou por algumas horas.