Instalei o LAMP no Ubuntu 12.04 LTS (Precise Pangolin) e, em seguida, defina a senha de root no phpMyAdmin . Esqueci a senha e agora não consigo fazer o login. Quando tento alterar a senha pelo terminal, recebo:
ERRO 2002 (HY000): Não é possível conectar ao servidor MySQL local através do soquete '/var/run/mysqld/mysqld.sock' (2)
Como posso consertar isso? Não consigo abrir o LAMP, desinstalá-lo ou reinstalá-lo.
mysql
phpmyadmin
lamp
forgot-password
mysql-error-2002
sushmit sarmah
fonte
fonte
Respostas:
Certa vez, tive esse problema e o resolvi instalando
mysql-server
, portanto, certifique-se de ter instalado omysql-server
, não omysql-client
ou qualquer outra coisa.Esse erro significa que o arquivo
/var/run/mysqld/mysqld.sock
não existe; se você não instaloumysql-server
, o arquivo não existiria. Portanto, nesse caso, instale-o comMas se o
mysql-server
já estiver instalado e em execução, você precisará verificar os arquivos de configuração.Os arquivos de configuração são:
Em
/etc/my.cnf
, a configuração do arquivo de soquete pode ser/tmp/mysql.sock
e na/etc/mysql/my.cnf
configuração do arquivo de soquete pode ser/var/run/mysqld/mysqld.sock
. Então, remova ou renomeie/etc/mysql/my.cnf
, deixe o mysql usar/etc/my.cnf
, e o problema poderá ser resolvido.fonte
sudo apt-get install mysql-server
instalar o mysql no ubuntuTente o seguinte:
Também (para ver se está em execução):
Provavelmente é apenas uma configuração incorreta no
my.cnf
arquivo, em/etc/somewhere
(dependendo da distribuição do Linux ).fonte
/etc/my.cnf
e comentar a#bind-address = 127.0.0.1
Referência 1 Referência 2 . Então eu poderia me conectar. Depois disso, percebi que estava recebendo agora esse erro de 2002, que me levou a esta resposta e agora está funcionando novamente. Definitivamente, concordo com você, obtendo uma explicação sobre o motivo de apenas digitarmysql
sem-h
gerar um erro.mysql -h localhost
não funciona. Certifique-se de usarmysql -h 127.0.0.1
como especificado na resposta.Estou vendo todas essas respostas, mas nenhuma oferece a opção de redefinir a senha e nenhuma resposta aceita . A questão real é que ele esqueceu sua senha, então ele precisa redefinir, para não ver se está em execução ou não (instalado ou não), como a maioria dessas respostas implica.
Para redefinir a senha
Siga estas etapas (pode ser útil se você realmente esquecer sua senha e puder testá-la a qualquer momento, mesmo se não estiver na situação no momento):
Pare
mysql
Ou para outras versões de distribuição:
Inicie o MySQL no modo de segurança
Entre no MySQL usando root
Selecione o banco de dados MySQL para usar
Redefinir a senha
Liberar os privilégios
Reinicie o servidor
Pare e inicie o servidor novamente
Ubuntu e Debian:
No CentOS, Fedora e RHEL:
Entre com uma nova senha
Digite a nova senha e aproveite seu servidor novamente como se nada tivesse acontecido
Isso foi retirado de Redefinir uma senha root do MySQL .
fonte
repair table user use_frm
trabalhou para mim resolver este problema. - stackoverflow.com/questions/4297592/...update user set authentication_string=password('mynewpassword') where user='root';
Eu tentei os seguintes passos:
super user
ou usesudo
/etc/mysql/my.cnf
usando o geditbind-address
e altere seu valor para o endereço IP da máquina host do servidor de banco de dados. Para mim, foilocalhost
ou127.0.0.1
sudo service mysql start
E funcionou para mim.
fonte
Corrigi esse problema executando o seguinte comando:
E se você estiver em um mac e usou o brew para instalar o mysql, basta usar:
fonte
Eu tive um problema parecido. o mysql não inicia:
Se eu desabilitei o apparmor:
o problema foi embora. O problema foi que o mysqld estava tentando acessar /run/mysqld/mysqld.sock, mas o perfil apparmor apenas deu permissão para /var/run/mysqld/mysqld.sock (/ var / run está simbolicamente ligado a / run, portanto, eles são realmente o mesmo). Não sei por que o mysqld não está usando o caminho var, pois é o que está definido em todos os arquivos de configuração, mas você pode corrigir o problema adicionando o seguinte ao /etc/apparmor.d/usr.sbin.mysqld
fonte
No meu caso, foi que o disco estava cheio e o mysqld não pôde mais ser iniciado.
Tente reiniciar o serviço mysql.
ou
Se ele não reconhecer o
stop
comando, é definitivamente o espaço em disco. Você deve deixar algum espaço na partiçãomysql
alocada ou aumentar o disco.Verifique o espaço em disco com
fonte
Eu resolvi isso matando o
mysql
processo:E então eu iniciei o servidor novamente com:
Mas
start
funciona também:Então entrei como
admin
e estava pronto.fonte
De alguma forma, o processo do servidor MySQL não criou o soquete ou o cliente está procurando o soquete no lugar errado.
Minha primeira sugestão seria verificar se o servidor MySQL está sendo executado. A segunda sugestão pode ser: o servidor MySQL está sendo executado em outro host? Nesse caso, adicione a
-h <hostname>
flag ao seu cliente MySQL no terminal.Se o MySQL está realmente rodando, e rodando localmente, verifique seu
my.cnf
arquivo. Deve haver uma linha comoVeja se isso corresponde ao local do soquete que você mencionou na sua postagem.
Por experiência, eu diria que o cenário mais provável é o seu servidor MySQL ou não está sendo executado ou não está no mesmo host em que você executa o seu cliente MySQL a partir do terminal.
fonte
Acabei de experimentar o mesmo problema depois que tive que reiniciar meu servidor de produção. Estou executando o Debian 8.1 (Jessie) em um droplet DigitalOcean.
Isto é o que eu fiz para resolver meu problema:
Verifique se o arquivo
/var/run/mysqld/mysqld.sock
existe. Caso contrário, crie-o manualmente digitandotouch /var/run/mysqld/mysqld.sock
(que é o que eu precisava fazer).Portanto, o processo MySQL pode usar esse arquivo. Altere a propriedade do arquivo digitando
chown mysql /var/run/mysqld/mysqld.sock
.Depois que o '2' estiver pronto, reinicie o serviço MySQL digitando
service mysql restart
ou/etc/init.d/mysql restart
.Depois de seguir as etapas acima, meu problema foi resolvido. Raramente tenho esse problema e provavelmente existe uma maneira melhor; portanto, forneça feedback construtivo, se necessário :).
fonte
Seu servidor mysql pode não estar em execução. Verifique se ele funciona digitando
mysql.server start
no terminal.fonte
Verifique o
"bind-adress"
parâmetro em my.cnf.Caso contrário, tente com o comando:
-h para host
127.0.0.1
, ou seja, localhost-P (observe -P como maiúscula) para a porta
3306
, ou seja, a porta padrão para o MySQLfonte
Aqui está o que funcionou para mim:
Isso cria um link.
fonte
Se você estiver usando o Amazon EC2 e tiver esse problema na instância, precisará fazer o seguinte:
O Amazon EC2 não possui um servidor instalado (apenas o cliente está instalado); portanto, é necessário instalá-lo na sua instância e, em seguida, tente
para verificar se funcionou.
fonte
Eu acho que sempre que você receber o erro
Eu recomendarei primeiro verificar se o seu
mysql
daemon está em execução ... Na maioria das vezes, ele não será executado por padrão. Você pode conferir por/etc/init.d/mysqld status
.Se não estiver em execução, inicie-o primeiro:
Aposto que 110% funcionará.
fonte
Em vez de usar localhost:
Use 127.0.0.1
(observe também, não há espaço entre -p e minha senha)
Desfrutar :)
fonte
127.0.0.1
funciona enquantolocalhost
não funciona ?!Verifique se você possui backups de bancos de dados importantes e tente desinstalar coisas relacionadas ao MySQL :
Em seguida, instale-o novamente :
Isso funcionou para mim e os dados foram mantidos.
Se o PHP MySQL mostrar erros, talvez seja necessário reinstalar o PHP MySQL :
fonte
Eu também estou enfrentando o mesmo problema que ocorrerá se o seu
mysql server
não estiver sendo executado por padrão; ele será interrompido novamente após alguns segundos, para que você execute novamente o$ sudo service mysql start
comando ( ), que poderá ser alterado, se souber.para esse comando use
(insira a senha do usuário, se necessário, porque usamos
sudo
) e executeagora você tem seu banco de dados
fonte
Se sua instalação foi recente, você deve confirmar se a instalação é o SERVIDOR de instalação ... como mysql-server-5.5 .. Talvez você tenha instalado apenas "mysql" .. este é apenas o cliente em vez do servidor.
fonte
Se você possui o XAMPP instalado em sua máquina Linux, tente copiar seu
my.cnf
arquivo de/opt/lampp/etc/my.cnf
para/etc/my.cnf
.Em seguida, execute o
mysql -u root
novamente ... Agora você deve ter o soquete correto e poder executar o cliente MySQL.fonte
Eu também tenho esse problema, mas acabei de:
Funcionou para mim.
fonte
ENCONTREI A SOLUÇÃO
Antes de disparar o comando:
mysql_secure_installation
sudo systemctl stop mariadb
sudo systemctl start mariadb
mysql_secure_installation
Em seguida, ele solicitará a senha root e você pode simplesmente pressionar Enter e definir sua nova senha root.
fonte
No meu caso, a porta padrão 3306 estava sendo usada por algum outro processo e, portanto, não estava iniciando. Depois que eu parei o outro serviço e o fiz
sudo service mysql start
, funcionou bem. BTW, você pode usar algo comosudo lsof -Pn -iTCP:3306
para ver quem pode estar usando a porta.fonte
No meu caso, funcionou fazendo P&D:
Eu consigo conectar ao MySQL usando
Mas não está funcionando
mysql -u root -p
.Não encontrei nenhum
bind-address
no my.cnf . Por isso, superei o parâmetrosocket=/var/lib/mysql/mysqld.sock
nomy.cnf
qual estava me causando um problema com o login.Depois de reiniciar o serviço, tudo correu bem:
fonte
eu resolvi esse problema com o mysql restart
/etc/init.d/mysql stop
e
/etc/init.d/mysql start
é isso aí.
fonte
Por experiência, digo que você precisa verificar se o servidor está rodando primeiro e depois tentar configurar o MySQL. A última solução é reinstalar o MySQL.
fonte
Abra o terminal e digite:
O cliente principal do banco de dados MySQL e os pacotes MySQL Server serão da mesma versão 5.5. O MySQL Client 5.5 e o MySQL Server 5.5 são as atuais "melhores" versões desses pacotes no Ubuntu 14.04, conforme determinado pelos mantenedores de pacotes.
Se você preferir instalar o MySQL Client 5.6 e o MySQL Server 5.6, também poderá encontrar os pacotes mysql-client-core-5.6 e mysql-server-5.6 no Ubuntu Software Center. O importante é que os números de versão do cliente e do servidor correspondam nos dois casos.
Isso funcionou para mim.
fonte
Verifique se você possui os direitos corretos:
Eu tive os mesmos problemas e isso funcionou para mim. Depois disso, pude iniciar o MySQL.
fonte
No meu caso, parece que não consegui realmente matar o processo mysql, quando executo
O processo mysql estava sempre lá, parece que estava bloqueando o arquivo de soquete e o novo processo mysql não foi capaz de criá-lo.
então isso ajudou
Agora consigo fazer login no banco de dados usando
Em seguida, para atualizar a senha root:
PS : tive problemas para atualizar o root passwod, parece um problema com o plugin "auth_socket", então tive que criar um novo usuário com privilégios totais
Isso cria o usuário "super" sem senha e você pode se conectar com
mysql -u super
fonte
use mysql;
<br> e agora você pode usar <br>UPDATE user SET authentication_string=password('YOURPASSWORDHERE') WHERE user='root'; FLUSH PRIVILEGES;
No servidor Debian Jessie, minha solução de trabalho era simplesmente fazer
como usuário root
fonte