ERRO 2002 (HY000): Não é possível conectar ao servidor MySQL local através do soquete '/tmp/mysql.sock'

202

Eu instalei o MySQL no Mac OS X Mountain Lion com homebrew install mysql, mas quando tentei mysql -u root, recebi o seguinte erro:

ERRO 2002 (HY000): Não é possível conectar ao servidor MySQL local através do soquete '/tmp/mysql.sock' (2)

O que esse erro significa? Como posso corrigir isso?

shrewdbeans
fonte
3
Não publicá-la como uma resposta, mas você tem que install mysql-serverempacotar aswell, não apenasmysql
lenço Panky
3
@HankyPanky talvez isso fosse verdade quando você o escreveu. Mas em 2016 Brew não tem mysql-servera install.
Jjpe 5/04
22
É importante observar que você instalou usando o Homebrew, então ignore as dicas que não pertencem ao homebrew e inicie (e reinicie na inicialização) com brew services start mysqlou (se você não quiser um serviço em segundo plano) mysql.server start.
precisa
1
Eu consegui funcionar, mas com o antigo mysql normal 5.7.19. A nova versão do [email protected] 5.7.24não funcionou porque algumas referências de configuração foram mantidas vinculadas ao antigo mysql em vez do novo brew Cellar [email protected] Keg. Então, obrigado, tente mais tarde #
KeitelDOG
1
Também é provável que este erro ocorra após a execução, o brew upgradeque instalará uma versão mais recente do mysql que a instalada anteriormente.
johnsampson

Respostas:

113

Provavelmente porque o MySQL está instalado, mas ainda não está em execução.

Para verificar se está em execução, abra o Activity Monitor e, em "Todos os processos", pesquise e verifique se vê o processo "mysqld".

Você pode iniciá-lo instalando "MySQL.prefPane".

Aqui está o tutorial completo que me ajudou: http://obscuredclarity.blogspot.in/2009/08/install-mysql-on-mac-os-x.html

shammerw0w
fonte
95
Acabei de executar mysqlde foi tudo, esse foi um problema causado pelo desligamento inadequado devido a uma espécie de reinicialização / desligamento do sistema.
ProfNandaa
2
Nenhum dos métodos sugeridos funcionou. Para mim, estava em execução, no entanto, havia um problema de permissão. A execução sudo chown -R _mysql:mysql /usr/local/var/mysql && sudo brew services restart [email protected]resolveu o problema #
FooBar 26/10/1918
Ao procurar no Activity Monitor, o mysqlId está sendo executado; Para contornar isso, basta parar o mysql e reiniciá-lo.
JpersaudCodezit
109

Você precisará iniciar o MySQL antes de poder usar o mysqlcomando no seu terminal. Para fazer isso, execute brew services start mysql. Por padrão, o brew instala o banco de dados MySQL sem uma senha root. Para prendê-lo correr: mysql_secure_installation.

Para executar Ligação: mysql -uroot. rooté o nome de usuário aqui.

Md Mazedul Islam Khan
fonte
8
A execução sudo chown -R _mysql:mysql /usr/local/var/mysql && sudo brew services restart [email protected]resolveu o problema
FooBar 26/10
1
Para quem se pergunta, mysql_secure_installationé um script específico do mariaDB.
T.Woody
3
brew services start mysqlsucesso. Mas quando eu corro mysql -urootatrás, ainda o mesmo erro.
Harper Koo
é necessário executá-lo toda vez que um Mac é iniciado ou o executará uma vez que se livrar do erro / manter o MySQL em execução ou iniciar na inicialização?
Connor Leech
Executar isso uma vez deve ser suficiente.
Md Mazedul Islam Khan
90

Isso aconteceu após a instalação do homebrew e ocorre devido a problemas de permissão. Os seguintes comandos corrigiram o problema.

sudo chown -R _mysql:mysql /usr/local/var/mysql

sudo mysql.server start
Nirojan Selvanathan
fonte
2
você está @nirojan incrível, eu estava batendo a cabeça na parede: thumsup:
Ravi Sharma
Legal. Eu posso resolver o meu problema quando a mudança para outra conta de administrador mac :)
William Wong Garay
Graças um milhão. Estou rachando a cabeça há mais de 5 horas. Visto várias respostas na internet e somente isso ajudou.
ivange94
Eu te amo @nirojan
Raccoon
Parabéns! Mas quando reiniciei o meu MacBook, tenho o mesmo problema.
Junior Gantin
46

Corre: brew info mysql

E siga as instruções. A partir da descrição na fórmula:

Set up databases to run AS YOUR USER ACCOUNT with:
    unset TMPDIR
    mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp

To set up base tables in another folder, or use a different user to run
mysqld, view the help for mysql_install_db:
    mysql_install_db --help

and view the MySQL documentation:
  * http://dev.mysql.com/doc/refman/5.5/en/mysql-install-db.html
  * http://dev.mysql.com/doc/refman/5.5/en/default-privileges.html

Espero que isto ajude.

Gaurav Agarwal
fonte
35

Como outros salientaram, isso ocorre porque o MySQL está instalado, mas o serviço não está sendo executado. Existem muitas maneiras de iniciar o serviço MySQL e o que funcionou para mim é o abaixo.

Para iniciar o serviço:

  1. Vá para "Preferência do sistema"
  2. No painel inferior, deve haver um ícone MySql.
  3. Clique duas vezes nele para iniciar o 'MySQL Server Status' e pressione o botão 'Start MySQL Server'

Meu env:

Mac Yosemite 10.10.3

Pacote instalado: /Volumes/mysql-advanced-5.6.24-osx10.8-x86_64

Ithar
fonte
@HosMercury, você pode confirmar que possui o MySQL instalado
Ithar
Eu baixa e instalo o mysql da página oficial do MySQL. Esta solução funciona para mim. Obrigado :)
鄭元傑
1
Olá, baixei e instalei o mysql também a partir da página oficial da Web, mas no painel de preferências o servidor não está ativado (ponto vermelho). Quando clico em 'start sql server', ele fica 'verde' por um segundo e volta para vermelho, nada acontece. Eu tentei 'chown', crie um link simbólico para tmp / mysql.socket, desinstale / reinstale, instale o mysql, mas tudo falhou. a instalação do brew me dá um erro insatisfeito, algo sobre exigir o SO Sierra ou superior. Estou dirigindo el capitan. Qualquer ajuda seria apreciada.
Spencer Trinh
24

As soluções giram em torno de:

  • alterando as permissões do MySQL

    sudo chown -R _mysql:mysql /usr/local/var/mysql
  • Iniciando um processo MySQL

    sudo mysql.server start

Apenas para adicionar muitas respostas úteis e excelentes que foram fornecidas aqui e em várias postagens diferentes, tente especificar o host se os comandos acima não resolverem esse problema para você, ou seja,

mysql -u root -p h127.0.0.1
mondieki
fonte
Para mim foi as permissões emitir
pfwd
deve ser: mysql -u root -p -h127.0.0.1
Duc Chi
Uau, uma solução tão melhor do que acabar com todas as minhas coisas locais. Esta foi uma solução rápida!
Jordan
Eu tentei acima, mas, eventualmente, funcionou: sudo chown -R $ (whoami) $ (brew --prefix) / *
Kiran Ruth R
15

Aviso - este método removerá todos os seus bancos de dados na /usr/local/var/mysqlpasta

Eu tinha o MySQL instalado com o Homebrew, e a única coisa que corrigiu isso para mim foi reinstalar o MySQL.

No laptop da minha empresa, eu não tinha permissão para desinstalar o MySQL do meu computador via Homebrew:

$ brew uninstall mysql --ignore-dependencies
Uninstalling /usr/local/Cellar/mysql/8.0.12... (255 files, 233.0MB)
Error: Permission denied @ dir_s_rmdir - /usr/local/Cellar/mysql/8.0.12

Então, em vez disso, removi e reinstalei o MySQL manualmente:

$ sudo rm -rf /usr/local/Cellar/mysql
$ brew cleanup
$ sudo rm -rf /usr/local/var/mysql
$ brew install mysql

E isso funcionou!

yndolok
fonte
Aviso - este método removerá todos os seus bancos de dados (na pasta / usr / local / var / mysql).
22419 Johnsampson
13

Abaixo, incluí as instruções mais brew install mysqlrecentes de pesquisas mais recentes para esse problema:

$ brew install mysql
==> Downloading https://homebrew.bintray.com/bottles/mysql-5.6.26.yosemite.bottle.1.tar.gz
######################################################################## 100.0%
==> Pouring mysql-5.6.26.yosemite.bottle.1.tar.gz

To connect:
    mysql -uroot

To have launchd start mysql at login:
  ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
Then to load mysql now:
  launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Or, if you don't want/need launchctl, you can just run:
  mysql.server start

No meu caso, eu carreguei o mysql agora via launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.pliste fui capaz de iniciar $ mysqle estar no meu caminho.

Espero que isso ajude os solucionadores de problemas recentes!

ggentzke
fonte
11

Parece que seu servidor mysql não foi iniciado. Normalmente, eu executo o comando stop e o inicio novamente:

mysqld stop
mysql.server start

Mesmo erro, e isso funciona para mim.

Prakhar Agarwal
fonte
9

Isso corrigiu meu problema quando reiniciei o serviço mysql. Apenas corra:

brew services start mysql
pmventura
fonte
8

este problema relacionado ao /usr/local/var/mysqlacesso à pasta, removo esta pasta e reinstale o mysql.

  1. desinstale o mysql com o brew:

    brew uninstall mysql

  2. sudo rm -r /usr/local/var/mysql

  3. brew install [email protected]
  4. mysql -u root

Esta solução funciona bem para mim! MAS VOCÊ PERDEU TODAS AS SUAS BASES DE DADOS! AVISO!

barsmaga
fonte
2
Isso provavelmente corrigirá o problema, no entanto, para futuros leitores, seja avisado que isso eliminará todos os seus bancos de dados. É basicamente uma reinstalação difícil do MySQL. Sei que o contexto da pergunta foi uma instalação nova, mas algumas pessoas que estão fazendo a varredura podem apenas tentar isso sem saber dos danos que podem causar em uma instalação existente / de produção.
efru
1
Esta não é realmente uma solução. Isso é "Você tentou ligar e desligar novamente?"
Berry M.
6

Ah, demorei um pouco para descobrir. Eu vi isso em um comentário. Após instalar o mysql usando o brew, e iniciar o serviço (talvez usando sudo brew services start mysql), execute:

$ mysqld

E o MySQL deve estar rodando para você posteriormente.

FooBar
fonte
5

Para mim, era simples como correr:

/usr/local/opt/mysql/bin/mysqld_safe

ao invés de mysqld

Kenny Cason
fonte
1
Isso funcionou para mim. Não sei por que, mas pode estar relacionado a um bug de reinicialização do Mac OS na minha máquina
kraftydevil 11/06
3

Encontrei a solução para o meu problema. Foi porque meu servidor MySQL não estava funcionando.

Isso foi causado pelo fato de o MySQL não ter sido configurado corretamente na minha máquina e, portanto, não poder ser executado.

Para remediar isso, usei um script que instala o MySQL no Mac OSX Mountain Lion , que deve ter arquivos ausentes instalados.

Aqui está o link: http://code.macminivault.com/

Nota importante: este script define a senha raiz como uma sequência gerada aleatoriamente, que é salva na área de trabalho; portanto, tome cuidado para não excluir este arquivo e anote a senha. Ele também instala o gerenciador MySQL nas suas preferências do sistema. Também não tenho certeza se remove quaisquer bancos de dados existentes, portanto, tenha cuidado com isso.

shrewdbeans
fonte
3

No meu caso, era simplesmente uma questão de excluir um arquivo de bloqueio.

sudo rm -f /tmp/mysql.sock.lock
Brad Johnson
fonte
3

Eu passei por esse problema e consegui executar o servidor mysql usando a solução abaixo

Instale o mysql através de .dmg( https://dev.mysql.com/downloads/mysql/5.7.html ), você obterá o painel de serviço mysql nas preferências do sistema e iniciará o mysql no painel e tente

mysql -u root -p

Imagens anexadas para referência

Preferências do Sistema

Painel mysql

Aravind Vemula
fonte
2

Depois de trabalhar nisso por várias horas, o que funcionou para mim foi ir para / etc / mysql / e editar o arquivo my.cnf. Adicione o seguinte

[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
Jackstine
fonte
1
Isso também fez o truque para mim, embora para a minha versão do os / mysql fosse: /etc/my.conf e o soquete estivesse em /var/lib/mysql/mysql.sock /var/log/mysqld.log deveria apontar você para onde está o arquivo de soquete.
keithpjolley
1

Eu tentei de todas as maneiras possíveis para resolver esse problema, como ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock, desinstalar e reinstalar o mysql, verifique se o mysql está sendo executado no xampp, mas nada disso ainda funcionou .

Finalmente, abro o my.cnf (arquivo de configuração) e copio o caminho do soquete (certifique-se de copiar o caminho completo, caso contrário não funcionará). Então eu executo este comando no meu terminal

mysql --socket=/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock

Lo e eis que o mysql é lançado.

Esta solução só funcionará se o seu MySQL for mostrado em execução no Xampp / Ampps, mas no terminal ainda não está conectado ao soquete direito quando você já tentou algo como:

./mysql -u root

ou

brew services start mysql

Eu espero que isso ajude!

Kate Lee
fonte
Eu também tentei todas as soluções sugeridas neste post, e ele não funcionou. Você precisa do xampp instalado? Eu não estou familiarizado com isso. Eu instalei apenas a versão GPL do servidor mysql no site oficial (.DMG). Eu não acredito que tenho esse aplicativo - XAMPP. Você pode por favor elaborar? Obrigado.
Spencer Trinh
1

só isso fez o truque para mim brew services start --all (depois de tentar todas as respostas)

user10604324
fonte
2
Explique como isso está relacionado à pergunta.
mentallurg
1

Eu recomendo que você corra

  mysql.server start

antes de ir para

  mysql -u root -p

para garantir que o servidor mysql esteja funcionando antes de tentar fazer login nele

Isso acontece muitas vezes no que você inicia / reinicia uma máquina na qual nenhum servidor mysql está executando.

mwangaben
fonte
1

Continuo voltando a este post, encontrei esse erro várias vezes. Pode ter a ver com a importação de todos os meus bancos de dados após uma nova instalação.

Estou usando homebrew. A única coisa que costumava consertar isso para mim:

sudo mkdir /var/mysql
sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock

Esta manhã, o problema retornou depois que minha máquina decidiu desligar da noite para o dia. A única coisa que o corrigiu agora foi atualizar o mysql.

brew upgrade mysql
JKL
fonte
0

No meu caso, logo após instalar o MAMP, o acesso ao mysql a partir do terminal estava dando o mesmo erro de soquete. No final, tudo o que queria era reiniciar e está funcionando.

Diwaker Tripathi
fonte
0

Muitas outras respostas úteis aqui, mas nada resolveu isso para mim. Por fim, nada do que encontrei neste site ou em outros teria qualquer versão do MySQL da Homebrew funcionando para mim.

Foi super indolor baixar o DMG em https://dev.mysql.com/downloads/file/?id=479114 (encontre a versão apropriada que você precisa) e deixe o assistente instalá-lo para mim. A única outra etapa manual foi adicionar/usr/local/mysql/bin ao meu PATH.

Eu recomendaria esta opção se a fermentação estiver causando problemas.

Atualização - se isso ainda não resolver, tente remover completamente o mysql antes de instalar via DMG. Siga estas instruções: https://gist.github.com/vitorbritto/0555879fe4414d18569d

Patrick
fonte
Eu instalei também através do arquivo DMG, mas ainda recebo esse erro de soquete. mysql --version funciona para mim e --help, mas nada mais. Eu adicionei ao path para fazer com que os comandos --version e --help funcionem. você pode por favor fornecer alguns conselhos? obrigado.
Spencer Trinh
Veja a atualização sobre a remoção do mysql primeiro. Isso foi corrigido para mim e para vários colegas de trabalho.
Patrick
0

Tente isto

rm -rf /usr/local/var/mysql && brew postinstall mysql@5.7 && brew services restart mysql@5.7
Golam Sorwar
fonte
0

Foi encontrado um problema semelhante após a atualização para o Catalina OS. Após executar o comando mysqld, descobri que havia algum problema com o arquivo de logs. Pode ser diferente para os outros.

$ mysqld

O problema foi

2019-10-16T04:58:59.174474Z 0 [ERROR] Could not open file '/var/log/mysql/error.log' for error logging: No such file or directory
2019-10-16T04:58:59.174508Z 0 [ERROR] Aborting

Resolva-o criando-o e aplicando as permissões apropriadas.

sudo mkdir -p /var/log/mysql
sudo touch /var/log/mysql/error.log
sudo chown -R _mysql:mysql /var/log/mysql/

Reinicie o MySQL

brew services restart mysql@5.7

O problema foi resolvido.

mysql -uroot -proot
Saif Khan
fonte
0

Depois de tentar muitas soluções, parece que o que finalmente fez o truque foi conectar-se por IP. Não há mais soquetes de arquivos sendo excluídos aleatoriamente.

Apenas atualize sua configuração do cliente MySQL (por exemplo /usr/local/etc/my.cnf) com:

[client]
port = 3306
host=127.0.0.1
protocol=tcp
Nicodemuz
fonte
-4
  1. Desinstale o MySQL.
  2. Retire /usr/local/var/mysql/.
  3. Instale o MySQL.
Amod Kulkarni
fonte
1
Isso não irá afastar todos os bancos de dados que você possa ter? Parece uma solução bastante pesada para mim, especialmente considerando que provavelmente é apenas um problema do MySQL não estar em execução.
Martin Tournoij 21/08/19
sim, mas, de acordo com a pergunta, essa foi uma nova instalação e, portanto, a suposição era de que não haveria bancos de dados.
Amod Kulkarni