Como você para o MySQL em uma instalação do Mac OS?

187

Eu instalei o MySQL via MacPorts . Qual é o comando necessário para interromper o servidor (eu preciso testar como meu aplicativo se comporta quando o MySQL está morto)?

Laurie Young
fonte

Respostas:

376

Existem casos diferentes, dependendo se você instalou o MySQL com o instalador binário oficial, usando o MacPorts ou usando o Homebrew :

Homebrew

brew services start mysql
brew services stop mysql
brew services restart mysql

MacPorts

sudo port load mysql57-server
sudo port unload mysql57-server

Nota: isso é persistente após uma reinicialização.

Instalador binário

sudo /Library/StartupItems/MySQLCOM/MySQLCOM stop
sudo /Library/StartupItems/MySQLCOM/MySQLCOM start
sudo /Library/StartupItems/MySQLCOM/MySQLCOM restart
mloughran
fonte
Muito obrigado - eu tinha os comandos stop e start, mas não sabia / pensava em tentar reiniciar. Depois de usar o comando stop, start não faria nada, como faria no painel Preferências do sistema MySQL.
Ross Henderson
4
No meu caso, foi um pouco diferente, porque o número da versão do mysql foi adicionado no arquivo plist. Foi assim: sudo launchctl unload -w /Library/LaunchDaemons/org.macports.mysql5.plist sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist
d1rk
1
E para mim, /opt/local/etc/LaunchDaemons/org.macports.mysql5/org.macports.mysql5.plist
Dmitry Minkovsky
10
E para homebrew:launchctl (un)load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Kostas
2
Se você tiver o Homebrew Services instalado, poderá usar brew services stop mysqle brew services start mysql. (Também restart, e runque começa apenas para a sessão actual.)
medmunds
138

Para aqueles que usaram o homebrew para instalar o MySQL, use os seguintes comandos abaixo para iniciar, parar ou reiniciar o MySQL

Início da fermentação

/usr/local/bin/mysql.server start

Reinício da fermentação

/usr/local/bin/mysql.server restart

Parada de fermentação

/usr/local/bin/mysql.server stop
pjammer
fonte
4
Para mim, o diretório de instalação do homebrew é/usr/local/Cellar/[email protected]/5.7.23/bin/
Moobie
68

Você sempre pode usar o comando "mysqladmin shutdown"

Rimantas
fonte
1
Os comandos acima não funcionaram para mim. Este fez. Não tenho certeza qual é a diferença na minha configuração, mas obrigado.
Marco Marco
2
Mesmo que funcione, se você estiver usando o MacPorts e executar isso, o launchctl não perceberá que o mysql parou e se queixará se você tentar iniciá-lo (carregar). Portanto, é preferível usar o launchctl.
lambshaanxy
1
Além disso, embora isso funcione para desligar o servidor, ele não fará nada para ajudá-lo a recuperá-lo quando desejar reiniciá-lo.
Aroth
3
Lembre-se de adicionar -p e digite sua senha root do mysql quando solicitado. Na minha instalação, onde o mysql é instalado com o MacPorts, o mysql é reiniciado e recarrega a configuração, que era o alvo da minha ação.
Jesper Grann Laursen
sudo /opt/local/lib/mysql56/bin/mysqladmin shutdownse o seu mysql vem de MacPorts
Alain Tiemblo
51

Se você estiver usando, homebrewvocê pode usar

brew services restart mysql
brew services start mysql
brew services stop mysql

para uma lista de serviços disponíveis

brew services list
Jan
fonte
2
Isso funcionou para mim, mesmo depois de interagir diretamente com o launchctl. Obrigado!
precisa
18

sudo /usr/local/mysql/support-files/mysql.server stop

Moesio
fonte
2
+1, este foi o único que funcionou para mim --- Acabei de usar o instalador do DMG do Mysql. Obrigado
Dolan Antenucci
15

sudo /opt/local/etc/LaunchDaemons/org.macports.mysql5/mysql5.wrapper stop

Você também pode usar iniciar e reiniciar aqui. Encontrei isso consultando o conteúdo de /Library/LaunchDaemons/org.macports.mysql.plist.

katy lavallee
fonte
1
É assim que você deve fazê-lo. Para MacPorts .. O launchctlmétodo NÃO funciona e, de fato, pode causar problemas com reclamações e gemidos na inicialização do PID / DB.
Alex Gray
10

Experimentar

sudo <path to mysql>/support-files/mysql.server start
sudo <path to mysql>/support-files/mysql.server stop

Outra tentativa:

sudo /Library/StartupItems/MySQLCOM/MySQLCOM start
sudo /Library/StartupItems/MySQLCOM/MySQLCOM stop<br>
sudo /Library/StartupItems/MySQLCOM/MySQLCOM restart

No entanto, descobri que a segunda opção só funcionava (OS X 10.6, MySQL 5.1.50) se o .plist tivesse sido carregado com:

sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysqld.plist

PS: Eu também descobri que precisava descarregar o .plist para obter uma instalação não relacionada do MAMP -MySQL para iniciar / parar corretamente. Depois de executar isso, o MAMP-MySQL começa bem:

sudo launchctl unload -w /Library/LaunchDaemons/com.mysql.mysqld.plist

zack
fonte
7

No meu mac osx yosemite 10.10. Este comando funcionou:

sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
sudo launchctl unload -w /Library/LaunchDaemons/com.mysql.mysql.plist

Você pode encontrar seu arquivo mysql na pasta / Library / LaunchDaemons / para executar

Duc Chi
fonte
2
Esta é a única maneira que funcionou para mim. Para outros métodos, o mysqldprocesso reinicia imediatamente após a parada.
Rockallite 7/06/16
Esta é a única maneira que funcionou para mim também. Mudei de homebrew para o DMG fornecido pelo MySQL e acho que possivelmente a versão brew ainda estava em execução, apesar de a ter desinstalado.
Sam Critchley
5

Usar:

sudo mysqladmin shutdown --user=*user* --password=*password*

Provavelmente alguém poderia se safar sem usar o sudo . O usuário pode ser root, por exemplo (ou seja, o usuário root do MySQL).

Steve
fonte
4

Bem, se tudo mais falhar, você pode simplesmente adotar uma abordagem implacável e matar o processo executando o MySQL manualmente.

Isso é,

ps -Af

para listar todos os processos, faça " kill <pid>" onde <pid>está a identificação do processo do daemon MySQL (mysqld).

John Montgomery
fonte
sim .. este é o melhor e universal para scripts. Você acha que há possibilidade de corrupção de dados? ou algum outro problema?
user425720
1
Isso tem potencial para corrupção de dados.
Dan Sandland
Mas, como último esforço, isso é adequado.
Dan Sandland
4

Mais recente OSX (10.8) e mysql 5.6, o arquivo está em Launch Daemons e é com.oracle.oss.mysql.mysqld.plist. Apresenta uma opção em Opções do sistema, geralmente na parte inferior da lista. Então vá para as configurações do sistema, clique no Mysql e desative-o na caixa de opções. https://dev.mysql.com/doc/refman/5.6/en/osx-installation-launchd.html

ppostma1
fonte
2

Para mim, está trabalhando com um "mysql5"

sudo launchctl unload -w /Library/LaunchDaemons/org.macports.mysql5.plist
sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist
Tudo é um
fonte
2

No meu caso, ele continuou reiniciando assim que eu finalizei o processo usando o PID. Também brew stopcomando não funcionou como eu instalei sem usar homebrew. Então eu fui para as preferências do sistema mac e temos o MySQL instalado lá. Basta abrir e parar o servidor MySQL e pronto. Aqui na captura de tela, você pode encontrar o MySQL na parte inferior das preferências do sistema.insira a descrição da imagem aqui

brincalhão
fonte
1

No OSX Snow Leopard

launchctl unload /System/Library/LaunchDaemons/org.mysql.mysqld.plist
sweetfa
fonte
0

Eu instalei o mysql5 e o mysql55 nos macports. Para mim, os arquivos mencionados aqui estão localizados nos seguintes locais:

(mysql55-server) /opt/local/etc/LaunchDaemons/org.macports.mysql55-server/org.macports.mysql55-server.plist

(mysql5) /opt/local/etc/LaunchDaemons/org.macports.mysql5/org.macports.mysql5.plist

Então, parando para esses trabalhos como este:

mysql55-server:

sudo launchctl unload -w /opt/local/etc/LaunchDaemons/org.macports.mysql55-server/org.macports.mysql55-server.plist

mysql5:

sudo launchctl unload -w /opt/local/etc/LaunchDaemons/org.macports.mysql5/org.macports.mysql5.plist 

Você pode verificar se o serviço ainda está sendo executado com:

ps ax | grep mysql

Além disso, você pode verificar os arquivos de log no meu caso aqui:

mysql55-server

sudo tail -n 100 /opt/local/var/db/mysql55/<MyName>-MacBook-Pro.local.err
...
130213 08:56:41 mysqld_safe mysqld from pid file /opt/local/var/db/mysql55/<MyName>-MacBook-Pro.local.pid ended

mysql5:

sudo tail -n 100 /opt/local/var/db/mysql5/<MyName>-MacBook-Pro.local.err
...
130213 09:23:57  mysqld ended
Manuel_B
fonte
0

Se você instalou o pacote MySQL 5 com MacPorts:

sudo launchctl  unload -w /Library/LaunchDaemons/org.macports.mysql.plist 

Ou

sudo launchctl  unload -w /Library/LaunchDaemons/org.macports.mysql5-devel.plist 

se você instalou o mysql5-develpacote.

Bartosz Blimke
fonte
1
Isso impedirá o início da reinicialização, o que não é o que o pôster estava pedindo.
Matthew Schinckel
0

mysql> mostra variáveis ​​onde nome_da variável como '% dir%';

| datadir | / opt / local / var / db / mysql5 / |

Jack Peng
fonte
0

Depois de tentar todos esses linha de comando, e não é trabalho.Eu tenho que fazer as seguintes coisas:

mv /usr/local/Cellar/mysql/5.7.16/bin/mysqld /usr/local/Cellar/mysql/5.7.16/bin/mysqld.bak
mysql.server stop

Dessa forma, o processo mysqld se foi. mas o /var/log/system.log tem muito lixo:

Jul  9 14:10:54 xxx com.apple.xpc.launchd[1] (homebrew.mxcl.mysql[78049]): Service exited with abnormal code: 1
Jul  9 14:10:54 xxx com.apple.xpc.launchd[1] (homebrew.mxcl.mysql): Service only ran for 0 seconds. Pushing respawn out by 10 seconds.
homem de bronze
fonte