Meu problema começou com a impossibilidade de efetuar login como root na minha instalação do mysql. Eu estava tentando executar o mysql sem senhas ativadas ... mas sempre que eu executava 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 tela fica assim:
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 não recebo uma solicitação 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 tentar novamente o comando e deixá-lo 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 se eu tentar fazer login como root, faça o seguinte:
# 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 o /var/run/mysqld/mysqld.sock
arquivo 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 MySQL, então não sei se isso é normal ou não. Mas estou incluindo essas informações para o caso de ajudar.
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 que 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, tentei novamente desinstalar / reinstalar. Desta vez, depois de desinstalar os pacotes, também renomeei manualmente todos os arquivos e diretórios mysql 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 mysql-server
e mysql-client
novamente. Mas notei que não me solicita uma senha. Não deveria pedir uma senha de administrador?
/var/run/mysqld/mysqld.sock
faltando. O problema que você vinculou tem esse arquivo.Respostas:
Para encontrar todos os arquivos de soquete no seu sistema, execute:
Meu sistema de servidor Mysql tinha o soquete aberto em
/var/lib/mysql/mysql.sock
Depois de descobrir onde o soquete está sendo aberto, adicione ou edite a linha no seu arquivo /etc/my.cnf com o caminho para o arquivo do soquete:
Às vezes, o script de inicialização do sistema que iniciou o executável da linha de comando especifica um sinalizador
--socket=path
. Esse sinalizador pode substituir o local my.cnf e isso resultaria em um soquete não sendo encontrado onde o arquivo my.cnf indica que deveria estar. Então, quando você tenta executar o cliente de linha de comando mysql, ele lerá my.cnf para encontrar o soquete, mas não o encontrará, pois se desvia de onde o servidor o criou. Portanto, a menos que você se importe com a localização do soquete, basta alterar o my.cnf para corresponder.Então, pare o processo mysqld. Como você faz isso varia de acordo com o sistema.
Se você é superusuário no sistema linux, tente um dos seguintes procedimentos se não souber o método específico usado pela instalação do MySQL:
service mysqld stop
/etc/init.d/mysqld stop
mysqladmin -u root -p shutdown
pkill -9 mysqld
pgrep mysql
oups aux | grep mysql | grep -v grep
4969
finalizado comkill -9 4969
Depois de fazer isso, convém procurar um arquivo pid
/var/run/mysqld/
e excluí-loCertifique-se de que as permissões no seu soquete sejam tais que qualquer usuário que o mysqld esteja executando possa ler / gravar nele. Um teste fácil é abri-lo para leitura / gravação completa e ver se ainda funciona:
Se isso resolver o problema, você poderá personalizar as permissões e a propriedade do soquete conforme necessário, com base nas suas configurações de segurança.
Além disso, o diretório em que o soquete reside deve ser acessível pelo usuário que está executando o processo mysqld.
fonte
kill -9
; existem várias maneiras que devem ser tentadas antes que isso aconteça.ps -aux | grep mysqld
e ver se quaisquer outros processos mysql estão funcionandoTente este comando,
fonte
sudo service mysqld start
sudo apt-get install mysql-server
se você não o tem já instalado :)Este erro ocorre devido a várias instalações do mysql. Execute o comando:
Mate o processo usando:
e execute o comando:
Também mate este processo executando:
Agora você está totalmente configurado, basta executar os seguintes comandos:
Tenha o mysql muito bem funcionando novamente
fonte
A solução é muito mais fácil.
mysql.sock
arquivo está localizado. No meu caso, foi em/opt/lampp/var/mysql/mysql.sock
sudo Nautilus
Isso inicia o gerenciador de arquivos com privilégios de superusuário
mysql.sock
arquivo está localizadomysqld.sock
seguida, clique com o botão direito do mouse no arquivo e corte -o/var/run
e crie uma pasta chamadamysqld
e insira-amysqld.sock
arquivo em/var/run/mysqld/mysqld.sock
:)fonte
sudo find / -type s
não contiver nenhummysql.sock
?Basta iniciar o serviço MySQL após a instalação:
Para o Ubuntu:
Para CentOS ou RHEL:
fonte
sudo systemctl status mysql.service
esudo systemctl start mysql.service
. Isso funciona para mimHá um erro no Ubuntu com o MySQL 5.6 e 5.7, que
var/run/mysqld/
desaparecia sempre que o serviço MySQL parava ou é reiniciado. Isso impede que o MySQL seja executado. Encontrei essa solução alternativa, que não é perfeita, mas pelo menos a executa depois de parar / reiniciar:fonte
# systemd tmpfile settings for mysql # See tmpfiles.d(5) for details
e depois ded /var/run/mysqld 0755 mysql mysql -
reiniciar, o mysql deve iniciar normalmente. Isto é do bugs.launchpad.net/ubuntu/+source/mysql-5.6/+bug/1435823 , comentário 3. Se você teve esse problema com o MySQL 5.7, por favor, comente no Launchpad. Quanto mais usuários abordarem o problema, mais atenção receberá./etc/tmpfiles.d/mysql.conf
comentário de motorbaby corrigiu esse problema para mim. Em um sistema operacional Centos 7 e usandomysql Ver 15.1 Distrib 10.3.11-MariaDB,
.Ok, basta copiar e colar estes códigos: Isso deve ser feito no terminal, dentro de um servidor, quando o banco de dados mysql não estiver instalado corretamente e quando você receber este erro: 'Não é possível conectar ao servidor MySQL local pelo soquete' / var / run / mysqld / mysqld.sock '(2)'.
Pare o MySql
Reinicie ou inicie-o
Faça um link como este e dê ao sistema
Execute uma instalação segura que orienta todo o processo que você precisa fazer para configurar o mysql
fonte
Can't connect
erro quando tento executar o comando acima.Eu enfrentei o mesmo erro e descobri que era devido à atualização de pacotes. Então, depois de reiniciar o sistema, resolvi o erro.
Acho que devido à atualização de bibliotecas / pacotes sql que ocorreu o erro, tente isso se estiver fazendo alguma atualização :)
fonte
Há muitas razões para esse problema, mas às vezes apenas reinicia o servidor mysql, ele corrige o problema.
fonte
Usando o XAMPP no ubuntu:
Crie uma pasta chamada mysqld dentro do diretório / var / run . Você pode fazer isso usando o comando
sudo mkdir /var/run/mysqld
.Crie um link simbólico para o arquivo mysql.sock criado pelo servidor XAMPP quando for iniciado. Você pode usar o comando
sudo ln -s /opt/lampp/var/mysql/mysql.sock /var/run/mysqld/mysqld.sock
.Boa sorte! Espero que você se safe dessa vez.
fonte
A resposta da etapa de carregamento do usuário funcionou para mim. Às vezes é necessário editar o arquivo em
/etc/mysql/my.cnf
adicionar linha ao clientefonte
mysql: unknown variable 'Host=127.0.0.1'
Host
precisa ser minúsculahost
e funcionará. Além disso, esta solução funcionou para mim.* Erro: 'Não é possível conectar ao servidor MySQL local através do soquete' /var/run/mysqld/mysqld.sock '(2)'
soluções
finalmente desinstale e reinstale o mysql. **
depois instale novamente
Após esta operação, 164 MB de espaço em disco adicional serão usados.
...... .......
Por fim, você receberá essas linhas ....
Configurando libhtml-template-perl (2.95-1) ...
Configurando o mysql-common-5.6 (5.6.16-1 ~ exp1) ... Processando gatilhos para libc-bin (2.19-0ubuntu6) Processando gatilhos para ureadahead (0.100.0-16) ...
E depois
root @ ubuntu1404: ~ # mysql -u root -p (para cada senha que primeiro você usar)
Digite a senha:
Nota: A senha digitada deve ser igual à senha do tempo de instalação do mysql (como .root, system, admin, rahul etc ...)
Então digite
USE rahul_db (nome do banco de dados);
Obrigado.**
fonte
mysql-server-5.6/5.5, mysql-client-5.6/5.5
. Obrigado!E: Package 'mysql-server-5.6' has no installation candidate
, ele não existe no Ubuntu 18.04Verifique se o caminho do arquivo de soquete inacessível é o mesmo que '/var/run/mysqld/mysqld.sock'; caso contrário, altere o caminho como o seu. Pare o mysqld
Se o processo ainda estiver em execução;
Remova o diretório mysql onde o socket será criado. Para mim, não foi permitido remover, então eu tive que remover com força.
Defina a propriedade para o diretório
Inicie o mysql
Tentando conectar o mysql
fonte
Eu acho que seu servidor MySQL não foi iniciado. Portanto, inicie o servidor usando um dos seguintes comandos.
ou
fonte
Solução temporária
Talvez alguém que esteja enfrentando esse problema. Estou usando o Mysql Workbench no Ubuntu 14 e recebi este erro.
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
tmp
diretóriofonte
/tmp
pasta, então ele será removido com certeza. Você pode alterar.sock
o local do arquivo. Veja @ user3002884 resposta.pode encontrar
mysqld.sock
em/var/run/mysqld
se você já tiver instaladomysql-server
porsudo apt-get install mysql-server
fonte
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
em
/etc/my.cnf
adicionar estas linhas:E reinicie o serviço com:
service mysql restart
isso funcionou para mim
fonte
Isso já foi mencionado algumas vezes, mas funcionou imediatamente para mim:
serviço mysql restart
fonte
No meu caso, dois processos mysqld estavam em execução .. eliminaram os processos opcionais usando o pkill -9 mysqld
fonte
Se você possui muitos bancos de dados e tabelas em seu sistema e se
innodb_file_per_table
configurou no my.cnf, o servidor mysql pode ter ficado sem objetos / arquivos abertos (ou melhor, com os descritores para esses objetos) Defina um novo número máximo come reinicie o mysql. Essa abordagem pode ajudar quando o soquete não é criado, mas na verdade esse pode não ser o problema real, existe um problema subjacente.
fonte
Eu só tive esse problema no Ubuntu 14.10
Voltas que
mysql-server
não estavam mais instaladas (de alguma forma foram removidas), mas eu não pude instalá-lo porque havia alguns pacotes quebrados e problemas / conflitos de dependência.No final, eu tive que reinstalar o mysql
fonte
Eu desinstalei o mysql no Ubuntu 16.04 /ubuntu/172514/how-do-i-uninstall-mysql
Eu reinstalei o mysql https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-16-04
Isso pareceu funcionar.
fonte
Minha solução;
Ubuntu 18.04 (WSL)
/etc/mysql/my.cnf
/etc/mysql/mysql.conf.d/mysqld.cnf
Eu mudei a porta. Funcionou para mim. Você pode escrever outra porta. Exemplo 3355
fonte
Por que obter este erro
Recebi novas atualizações das bibliotecas mysql, então atualizei o meu Kubuntu OS depois de obter esses erros.
Comandos que tentei e como corrigi-lo.
MySql-server está funcionando corretamente, mas quando eu tentei conectar sua doação
Eu verifiquei
/var/run/mysqld/mysqld.sock'.
este diretório. Meus arquivos não existiam.Eu também tentei esses comandos para conectar, mas não funcionou para mim.
Depois de perder cerca de 2 horas, encontrei a solução
Depois disso tudo consertou para mim.
fonte
Mudar o
host
para127.0.0.1
funcionou para mim.Edite o arquivo
/etc/mysql/my.cnf
e adicione a linha abaixo mencionada à seção:client
Depois que você terminar com isso. Execute o seguinte comando.
fonte
Eu também verificaria a configuração do mysql. Eu estava enfrentando esse problema com meu próprio servidor, mas estava um pouco apressado e configurou incorretamente o innodb_buffer_pool_size para minha máquina.
innodb_buffer_pool_size = 4096M
Geralmente funciona bem até 2048, mas acho que não tenho a memória necessária para suportar 4 shows.
Eu imagino que isso também poderia acontecer com outras definições de configuração do mysql.
fonte
Eu tive um problema semelhante em um CentOS VPS. 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 depois incrementando se o MySQL não iniciar. Definir 4, 5 ou 6 pode excluir seus dados, portanto, tenha cuidado e leia http://dev.mysql.com/doc/refman/5.7/en/forcing-innodb-recovery.html antes.
2) Reinicie o serviço MySQL. Somente SELECT será executado e isso é normal neste momento.
3) Despejar todos os seus bancos de dados / esquemas com o mysqldump um a um, não compactar os despejos, pois você teria que descompactá-los posteriormente de qualquer maneira.
4) Mova (ou exclua!) Apenas os diretórios do bd dentro de / var / lib / mysql, preservando os arquivos individuais na raiz.
5) Pare o MySQL e remova o comentário da linha adicionada em 1). Inicie o MySQL.
6) Recupere todos os CDs despejados em 3).
Boa sorte!
fonte
Tente o seguinte em um prompt do terminal:
Depois que você entrar, você poderá criar um novo usuário e conceder os privilégios que deseja no banco de dados específico ao qual eles precisam acessar.
O Mysql 5.7 mudou algumas coisas e, por padrão, usa o plugin auth_socket (ao contrário de mysql_native_password) como root para proteger a conta contra invasões. Você pode substituir isso definindo o campo do plug-in como root, mas, a menos que tenha um bom motivo, provavelmente não deve contornar a proteção. Especialmente quando
sudo mysql
é mais fácil do quemysql -u root -p
qualquer outra maneira.Descobri essas informações - de todos os lugares - em um site de ajuda do Raspberry Pi . Funcionou como um encanto depois que o Lubuntu 18.04 me incomodou por algumas horas.
fonte
Primeiro crie dir / var / run / mysqld
com o comando:
adicione rigths ao diretório
depois desta tentativa
fonte
Eu tive exatamente o mesmo problema. Depois de lutar por uma hora, encontrei uma maneira de corrigi-lo sem reinstalar o mysql-common, mysql-client, mysql-server.
Primeiro de tudo, vá para "/ var / run / mysqld". Você verá que o mysql.sock não existe. Simplesmente remova todo o diretório mysqld, recrie-o e forneça os privilégios necessários.
Agora, mate o processo mysql na sua totalidade. Pode ser possível que ele mostre o comando "aguardando limpeza de página" ao executar "/etc/init.d/mysql status" mesmo depois de desligar o serviço.
Para fechar completamente o serviço, use
Depois que o processo for encerrado, tente iniciá-lo novamente usando
E você verá que funciona bem! E também não haverá problema em pará-lo também.
fonte