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)?

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

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

4
Para mim, o diretório de instalação do homebrew é/usr/local/Cellar/mysql@5.7/5.7.23/bin/
Moobie

68

Você sempre pode usar o comando "mysqladmin shutdown"


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

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


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.


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


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


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).


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).


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


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

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


1

No OSX Snow Leopard

launchctl unload /System/Library/LaunchDaemons/org.mysql.mysqld.plist

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

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.


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 / |


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.
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.