Após a instalação do MySQL via Brew, recebo o erro - O servidor foi encerrado sem atualizar o arquivo PID


88

Ok, eu pesquisei tudo e passei um bom tempo instalando, desinstalando, tentando várias opções, mas sem sucesso.

Estou no Mac OS X Lion (10.7.3) e estou tentando configurar um Python, MySQL.

Instalei Python e MySQL com sucesso via HomeBrew. Python funciona muito bem.

Após a instalação do MySQL, segui os primeiros 2 passos - unset e os mysql_install_dbcomandos.

Agora, quando tento iniciar o mysql "mysql.server start", recebo o seguinte erro

ERROR! The server quit without updating PID file (/usr/local/var/mysql/Brajeshwar.local.pid).
  • Brajeshwar é meu nome de usuário na minha máquina.

Respostas:


80

EDIT 2012/09/18: Conforme apontado por Kane , certifique-se de que o mysqlbanco de dados esteja configurado corretamente antes de fazer qualquer outra coisa. Consulte “ Erro de PID no início do mysql.server? " para mais informações.

Resposta original mantida para o bem da história: provavelmente é um problema de permissão. Verifique /usr/local/var/mysql/*.err. O meu disse:

120314 16:30:14  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.
120314 16:30:14 mysqld_safe mysqld from pid file /usr/local/var/mysql/janmoesen.local.pid ended

Eu também tive que fazer isso:

sudo chown _mysql /usr/local/var/mysql/*

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

1
Recebo o mesmo erro, mas não tenho a pasta / usr / local / var / mysql :( Também estou usando homebrew.
Nathan Bashaw

2
Veja os comentários brew info mysqlou esta questão para a solução certa
Kane

4
sudo chmod ugo + w / tmp foi a minha solução.
Ben Racicot de

2
o meu foi resolvido com sudo chown -R {my_user_name}: admin / usr / local / var / mysql55 /
Packet Tracer

101

Descobri que era um problema de permissão com a mysqlpasta.

chmod -R 777 /usr/local/var/mysql/ 

resolveu para mim.


18
não há necessidade de fazer isso 777
JamesHalsall

2
Eu também estava procurando por um longo tempo e foi isso que consertou para mim.
mordido em

6
Observe que não recomendo definir nada como 777 em um ambiente de produção. Isso precisa ser apenas em uma instalação local. Eu também mudaria de volta para 755, no mínimo.
mikoop de

1
Se você vir um erro no mysql start Warning: O arquivo de configuração mundialmente gravável '/var/lib/mysql/none-dev/my.cnf' é ignorado Então você provavelmente desejará chmod ow / var / lib / mysql / none- dev / my.cnf
David Mann

1
o meu foi resolvido com sudo chown -R {my_user_name}: admin / usr / local / var / mysql55 /
Packet Tracer

65

Acabei reinstalando completamente o mysql e finalmente deu certo.

AVISO Isso removerá todos os seus bancos de dados, portanto, primeiro salve os dumps.

brew remove mysql
brew cleanup
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
sudo rm -rf /usr/local/var/mysql

brew install mysql
mysqld --initialize --explicit_defaults_for_timestamp
mysql.server start # no sudo!

3
Tentei alterar as permissões de todas as maneiras possíveis, sem sucesso. Acabei seguindo estas instruções e ... sucesso :)
kartsims

Esta é a ÚNICA solução que encontrei. Este deve ser o número um
Dan,

Obrigado, esta é a única coisa que funcionou para mim. Embora eu não tenha que corrermysqld --initialize --explicit_defaults_for_timestamp
Profundo

1
Iniciando MySQL ... ERROR! O servidor foi encerrado sem atualizar o arquivo PID (<caminho> -.lightspeed.irvnca.sbcglobal.net.pid). Recebendo este erro
Unnikrishnan

1
Apenas problema de homebrew
McGrady,

31

Tive este problema no mac 10.10.5 Yosemite

O que eu fiz para resolver isso

cd /usr/local/var/mysql
sudo rm *.err && sudo rm *.pid
sudo reboot
sudo mysql.server start


Felicidades! Dessa forma é a mais simples e salvou o meu dia!
iplus26

Perfeito, você salvou meu dia;)
Emy Stats

Suspiro. Depois de experimentar todas as soluções na internet por 2 horas, finalmente consertou isso! Um bom e velho recomeço! :)
SexyBeast

18

Novembro de 2014: se você está recebendo este erro no MySQL 5.6.x no Mac OS X Mavericks ou Yosemite e deseja usar o MySQL com PHP localmente (/tmp/mysql.sock é onde o PHP PDO espera encontrar o arquivo sock), aqui está o que consertou para mim:

1) Remova o comentário das linhas do arquivo de configuração do homebrew padrão e edite como abaixo

$ sudo vi /usr/local/Cellar/mysql/5.6.21/my.cnf
...
basedir = /usr/local/Cellar/mysql/5.6.21
datadir = /usr/local/var/mysql
port = 3306
server_id = <UNIQUE_NUMBER_HERE_OR_LEAVE_COMMENTED_OUT>
socket = /tmp/mysql.sock
pid-file = /usr/local/var/mysql/[BOXNAME].local.pid
....

BOXNAME é o que você tem em suas Preferências de Sistema -> Rede como o id único para seu computador na rede.

2) Defina as permissões em todos os arquivos no datadir mysql. Todos eram propriedade de [my_username]. O MySQL é muito exigente quanto a isso e se recusa a criar o arquivo pid a menos que (o usuário _mysql) seja o proprietário do diretório.

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

3) Inicie o MySQL usando o script bash helper / wrapper:

$ sudo mysql.server start
Starting MySQL
. SUCCESS! 

Espero que ajude. Se o acima não funcionar para você, tente executar o binário mysqld_safe manualmente no diretório Cellar / mysql / VERSION_ / bin / e verifique quais são as configurações (se for executado)

sudo /usr/local/Cellar/mysql/5.6.12/bin/mysqld_safe &

Se funcionar, você pode

ps aux | grep mysql 

e ver algo como

[username]  6881   0.0  2.7  3081392 454836   ??  S     8:52AM   0:00.54 /usr/local/Cellar/mysql/5.6.21/bin/mysqld --basedir=/usr/local/Cellar/mysql/5.6.21 --datadir=/usr/local/var/mysql --plugin-dir=/usr/local/Cellar/mysql/5.6.21/lib/plugin --verbose --log-error=/usr/local/var/mysql/BOXNAME.local.err --pid-file=/usr/local/var/mysql/BOXNAME.local.pid

Não sei por que isso funcionou para mim, mas mostra de onde obtive as opções do arquivo de configuração my.cnf. Você também pode usar as opções de linha de comando para tentar solucionar problemas ao iniciar o mysqld manualmente.

Se você executar manage para executar o servidor MySQL usando mysqld_safe, você pode ter que fazer isso para desligá-lo antes de tentar o auxiliar bash mysql.server. Resista ao impulso de matar -9 [PID] porque você pode corromper seus dados.

mysqladmin -uroot shutdown

Boa sorte!


obrigado - o meu foi resolvido com sudo chown -R {my_user_name}: admin / usr / local / var / mysql55 /
Packet Tracer

18

Eu tive o mesmo problema no OS X El Capitan, aqui está a sequência de comando do terminal que corrigiu isso para mim.

Exclua arquivos de erro (você terá que alterar o caminho dependendo de sua configuração)

sudo rm /usr/local/mysql/data/*.err

Encontre as informações para o processo mysql que ainda está em execução e elimine-o:

ps -A | grep -m1 mysql | awk '{print $1}' | sudo xargs kill -9

Agora reinicie o MySQL:

/usr/local/mysql/support-files/mysql.server start

10

Isso funcionou para mim:

sudo chmod -R 777 /usr/local/var/mysql/
sudo /usr/local/mysql/support-files/mysql.server start

Isso resolveu meu problema no MAC OS 10.11.3 (depois de mudar o modo para 777 do diretório mysql)
Ratha

Isso significa Ler, Gravar, Executar, ou direitos totais para todos os usuários dessa pasta e (-R) todos os arquivos e pastas nessa pasta. Para obter uma explicação detalhada, dê uma olhada no seguinte link: linux.com/learn/understanding-linux-file-permissions
Kresimir Plese

4

Isso funcionou para mim em 10.12.2:

$ rm /usr/local/var/mysql/*.err

então

$ brew services restart mysql

3

Se bem me lembro, é um problema de permissões. Tente 'tocar' e 'chmod' no arquivo pid ou na pasta em que o arquivo está armazenado.


Não. Eu até tentei chmod 777 para ver se isso resolve o problema, mas nada. Mesmo ERROR.
Brajeshwar,

Você tentou executar o chmod 777 no diretório mysql e excluir o arquivo pid e reiniciar o MySQL?
LonnyLot

3

Meu problema era que eu iniciei o servidor como sudo uma vez e tentei reiniciar como um usuário local.

Aqui, o mysql não foi capaz de gravar no arquivo '.err' pertencente ao root. Tive que remover esse arquivo e reiniciar o servidor:

sudo rm /usr/local/var/mysql/*.err
mysql.server start

2

Eu tenho um problema semelhante com o MySQL em um Mac (Mac Os X não foi possível iniciar o servidor MySQL. Motivo: 255 e também “ERRO! O servidor foi encerrado sem atualizar o arquivo PID”). Após um longo processo de tentativa e erro, finalmente, para restaurar as permissões do arquivo, eu acabei de fazer isso:

iniciei o Disk Utilities.app
escolha minha unidade no painel esquerdo
clique no botão “Reparar permissões do disco”

Isso funcionou para mim. Esperando que isso possa ajudar outra pessoa.


1

Para mim funcionou com:

unset TMPDIR
mysql_install_db --user=`whoami` --basedir="$(brew --prefix mariadb)" --datadir=/usr/local/var/mysql --tmpdir=/tmp

1

O que funcionou para mim foi:

  1. Vá para o diretório de instalação do mysql
  2. sudo chmod -R 777 data
  3. Em seguida, volte um diretório
  4. cd support-files/
  5. sudo ./mysql.server start

Depois disso, o servidor começou a funcionar.

Mas o problema com esse método é que tenho que repetir isso toda vez que quiser iniciar o mysql agora. Não sei por que começou a se comportar assim de repente.


1

Encontre o arquivo usr / local / var / mysql / your_computer_name.local.err e entenda mais informações sobre o erro

Localização: /usr/local/var/mysql/your_computer_name.local.err

Provavelmente é um problema com as permissões

  1. Descubra se o mysql está rodando e mate-o

ps -ef | grep mysql

matar -9 PID

onde PID é o valor da segunda coluna 2. verifique a propriedade do mysql

ls -laF / usr / local / var / mysql /

if it is owned by root, change it mysql or your user name

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


1

Experimente isto (OSX)

Passo 1: ps -aux | grep mysql

Então mate o número PID de 4 dígitos

Passo 2: kill 1965

Etapa 3: mysql.server start

Ou tendo dificuldade em localizar esses números PID, tente isto abaixo

Etapa 1 novamente: ps -aux | grep mysql

Etapa 2 novamente: killall

Etapa 3 novamente: mysql.server start


1

Verifique o log, você obterá informações mais detalhadas.

Use o comando abaixo para limitar o log de erros

tail -100 /usr/local/var/mysql/<user_name>.local.err

Para mim, um dos diretórios está faltando, uma vez criado o servidor foi iniciado.


1

A principal lição é verificar o arquivo .err, por padrão no Mac OSX ele está em /usr/local/var/mysql .

Esse arquivo de registro me revelou que eu precisava excluir os seguintes arquivos:

ibdata1
ib_logfile0
ib_logfile1

A execução do MySQL mysql.startfuncionou com sucesso depois disso. Observe que a exclusão desses arquivos provavelmente causará perda de dados.


0
sudo chmod -R 777 /usr/local/var/mysql/

funciona para mim.


0

Eu tive o mesmo problema:

Mas a situação era, toda vez que tento entrar:

/usr/local/mysql/support-files/mysql.server start

um arquivo denominado localhost.pidé criado em vez do iMax0.local.pidque foi declarado no erro:

ERROR! The server quit without updating PID file (/usr/local/mysql/data/iMax0.local.pid).

A solução que funcionou para mim foi copiar localhost.pide renomear para iMax0.local.pid.


0

Minha solução no OSX El Capitan foi:

sudo chmod ugo+w /tmp

Foi quebrado de repente.

O erro foi:

ERROR! The server quit without updating PID file

e o log mostrou:

Can't start server : Bind on unix socket: Permission denied

Também pode ser útil observar que no OSX não há nenhum my.cnfarquivo por padrão e não é necessário por padrão, o que eu não sabia. Boa sorte!



0

Eu tive o problema semelhante. Mas os seguintes comandos me salvaram.

cd /usr/local/Cellar
sudo chown _mysql mysql

0

Este é um problema de permissão de arquivo. Verifique as permissões do disco e repare.

Osx => Cmd + Espaço => Utilitário de Disco => Verificar Permissões de Disco.

Verificação concluída após Reparar Permissões do Disco. O comando mysql.server start foi executado com sucesso.


Isso funcionou para mim. Por favor, tente isso antes de fazer qualquer outra coisa.
Kamlesh

0

Nenhuma das respostas funcionou para mim. No entanto, eu simplesmente fizsudo mysql.server start e funcionou bem.

Além disso, para mim, ele NÃO mostrou problemas de permissões no arquivo * .err.


0

Eu tive esse problema no Linux, mas a causa é relevante para qualquer instalação do mysql. No meu caso, o servidor estava travando antes que a inicialização fosse concluída e o arquivo pid atualizado. As mensagens de erro foram vistas ao iniciar o mysqld diretamente ao invés de via "service mysql start".

No meu caso, a causa foi a partição onde os arquivos de log estavam localizados estar cheia. A remoção dos arquivos de log permitiu que o mysql iniciasse novamente. Para testar esse problema, vá até o local dos logs de atividades do mysql e faça df ..


0

Se você atualizou sua instalação do mysql para 8.x, verifique se sua versão anterior é compatível para atualização .

Caso contrário, o mysql não funcionará! Desinstale seu mysql junto com todos os arquivos de configuração em /usr/local/var/mysql(remova a pasta inteira). Reinstale o mysql.

NOTA: a reinstalação pode causar perda de dados.


0

todas as soluções acima não funcionam para mim. mas eles me dão algumas dicas para corrigir esse erro.

mysql.server start ---- erro O servidor saiu sem atualizar o arquivo PID

Eu instalei mysql@5.7 no meu macbook mojave com homebrew

brew install mysql@5.7

registro de erros do mysql localizado em /usr/local/var/mysql/IU.lan.err, há uma linha nele: Não é possível abrir e bloquear tabelas de privilégios: Tabela 'mysql.user' não existe

depois de tentar vários posts no buscador goole, virei para o baidu https://blog.csdn.net/xhool/article/details/52398042 inspirado neste post, encontrei a solução:

rm / usr / local / var / mysql / *

mysqld --initialize

uma senha aleatória para o usuário root será mostrada no bash. mas o comando mysql -uroot -p [theRandomPassword] não pode funcionar. então eu tenho que redefinir a senha. crie um arquivo init com conteúdo como este

SET PASSWORD FOR 'root' @ 'localhost' = PASSWORD ('MyNewPass');

coloque-o em qualquer diretório fácil de encontrar, como Desktop

mysqld --init-file = [YourInitFile] &

muitos logs impressos em sua tela.

mysql -uroot -pMyNewPass

aproveite sua versão alta do mysql!


0

Aconteceu comigo porque eu estava realmente mudando do MariaDB para o Mysql. Voltar para o MariaDB resolveu isso.

Estou supondo que o banco de dados existente não era compatível.


Esse também era o meu problema, eu estava mudando do MariaDB para o MySQL. Mas voltar para MariaDB não era uma solução aceitável. Eu removi o novo mysql e, em brew uninstall mysql@8.0seguida, apaguei a antiga pasta mysql criada por MariaDB sudo rm -rf /usr/local/var/mysql(isso excluirá seus bancos de dados, obviamente). Então brew install mysql@8.0e mysql.server starte funciona.
antriver

0

Resolvi isso usando sudo chown -R _mysql:_mysql /usr/local/var/mysql Graças a Matteo Alessani


0

Este erro pode estar realmente sendo mostrado porque o mysql já foi iniciado. Tente ver o status atual por:

mysql.server status

Sempre resolvi isso excluindo os arquivos de log, mas psna verdade mostrei processos mysql. Matei tudo, executei novamente mysql.server restarte funcionou!
EAT
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.