Come si interrompe MySQL su un'installazione di Mac OS?


187

Ho installato MySQL tramite MacPorts . Qual è il comando di cui ho bisogno per arrestare il server (devo testare come si comporta la mia applicazione quando MySQL è morto)?

Risposte:


377

Esistono diversi casi a seconda che tu abbia installato MySQL con il programma di installazione binario ufficiale, usando MacPorts o usando 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: questo è persistente dopo un riavvio.

Programma di installazione binario

sudo /Library/StartupItems/MySQLCOM/MySQLCOM stop
sudo /Library/StartupItems/MySQLCOM/MySQLCOM start
sudo /Library/StartupItems/MySQLCOM/MySQLCOM restart

Grazie mille - ho avuto i comandi stop e start, ma non sapevo / pensavo di provare a riavviare. Dopo aver usato il comando stop, start non farebbe nulla, come farebbe dal pannello delle Preferenze di Sistema di MySQL.
Ross Henderson,

4
Nel mio caso era leggermente diverso, perché il numero di versione mysql è stato aggiunto nel file plist. Era così: sudo launchctl unload -w /Library/LaunchDaemons/org.macports.mysql5.plist sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist
d1rk

1
E per me, /opt/local/etc/LaunchDaemons/org.macports.mysql5/org.macports.mysql5.plist
Dmitry Minkovsky,

10
E per l'homebrew:launchctl (un)load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Kostas,

2
Se hai installato Homebrew Services , puoi usare brew services stop mysqle brew services start mysql. (Inoltre restart, e runche inizia solo per la sessione corrente.)
medmunds

138

Per coloro che hanno utilizzato homebrew per installare MySQL, utilizzare i seguenti comandi per avviare, arrestare o riavviare MySQL

Inizio della birra

/usr/local/bin/mysql.server start

Brew riavvio

/usr/local/bin/mysql.server restart

Brew stop

/usr/local/bin/mysql.server stop

4
Per me, la directory di installazione di homebrew è/usr/local/Cellar/mysql@5.7/5.7.23/bin/
Moobie il

68

Puoi sempre usare il comando "mysqladmin shutdown"


1
I comandi sopra non hanno funzionato per me. Questo ha fatto. Non sono sicuro di quale sia la differenza nella mia configurazione, ma grazie.
Marco,

2
Anche se potrebbe funzionare, se stai usando MacPorts ed esegui questo, launchctl non realizzerà che mysql si è fermato e si lamenterà se provi ad avviarlo (carica). L'uso di launchctl è quindi preferibile.
lambshaanxy,

1
Anche se questo funziona per spegnere il server, non farà nulla per aiutarti a riavviarlo quando vuoi riavviarlo.
aroth

3
Ricorda di aggiungere -p e inserisci la tua password di root mysql quando richiesto. Alla mia installazione in cui mysql è installato con MacPorts mysql è stato riavviato e ha ricaricato la configurazione, che era l'obiettivo della mia azione.
Jesper Grann Laursen,

sudo /opt/local/lib/mysql56/bin/mysqladmin shutdownse il tuo mysql proviene da MacPorts
Alain Tiemblo,

51

Se stai usando homebrewpuoi usare

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

per un elenco di servizi disponibili

brew services list

2
Questo ha funzionato per me, anche dopo aver interagito direttamente con launchctl no. Grazie!
Lyndsy Simon,

19

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


2
+1 questo è stato solo uno che ha funzionato per me --- Ho appena usato l'installer DMG di Mysql. Grazie
Dolan Antenucci il

15

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

Puoi anche usare start e restart qui. Ho trovato questo guardando il contenuto di /Library/LaunchDaemons/org.macports.mysql.plist.


1
Questo è il modo in cui dovresti farlo ... Per MacPorts .. Il launchctlmetodo NON funziona, e in effetti può causare problemi con il bitching e il lamento all'avvio PID / DB.
Alex Gray,


11

Provare

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

Altrimenti prova:

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

Tuttavia, ho scoperto che la seconda opzione funzionava (OS X 10.6, MySQL 5.1.50) se il .plist è stato caricato con:

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

PS: Ho anche scoperto che avevo bisogno di scaricare il .plist per ottenere un'installazione non correlata di MAMP -MySQL per avviare / arrestare correttamente. Dopo aver eseguito questo, MAMP-MySQL si avvia bene:

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


7

Sul mio mac osx yosemite 10.10. Questo comando ha funzionato:

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

Puoi trovare il tuo file mysql nella cartella / Library / LaunchDaemons / da eseguire


2
Questo è l'unico modo che ha funzionato per me. Per qualsiasi altro metodo, il mysqldprocesso si riavvia immediatamente dopo l'interruzione.
Rockallite,

Questo è l'unico modo che ha funzionato anche per me. Sono passato dall'homebrew al DMG fornito da MySQL e penso che probabilmente la versione brew fosse ancora in esecuzione anche se l'ho disinstallata.
Sam Critchley, il

5

Uso:

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

Uno potrebbe probabilmente cavarsela senza usare sudo . Ad esempio, l' utente potrebbe essere root (ovvero, l'utente root MySQL).


4

Bene, se tutto il resto fallisce, potresti semplicemente adottare l'approccio spietato e uccidere il processo che esegue MySQL manualmente.

Questo è,

ps -Af

per elencare tutti i processi, quindi fare " kill <pid>" dove si <pid>trova l'id del processo del demone MySQL (mysqld).


sì .. questo è il migliore e universale per lo scripting. Pensi che ci sia possibilità di corruzione dei dati? o altri problemi?
user425720

1
Ciò ha il potenziale per la corruzione dei dati.
Dan Sandland,

Ma come ultimo sforzo disperato, questo è adeguato.
Dan Sandland,


2

Per me sta lavorando con un "mysql5"

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

2

Nel mio caso, ha continuato a riavviarsi non appena ho terminato il processo utilizzando PID. Inoltre il brew stopcomando non ha funzionato come ho installato senza usare homebrew. Poi sono andato alle preferenze di sistema mac e abbiamo MySQL installato lì. Basta aprirlo e arrestare il server MySQL e il gioco è fatto. Qui nello screenshot, puoi trovare MySQL in fondo alle preferenze di sistema.inserisci qui la descrizione dell'immagine


1

Su OSX Snow Leopard

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

0

Ho installato mysql5 e mysql55 su macports. Per me i file citati qui si trovano nei seguenti luoghi:

(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

Quindi fermarsi per questi lavori in questo modo:

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 

Puoi verificare se il servizio è ancora in esecuzione con:

ps ax | grep mysql

Inoltre puoi controllare i file di registro nel mio caso qui:

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 hai installato il pacchetto MySQL 5 con MacPorts:

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

O

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

se hai installato il mysql5-develpacchetto.


1
Questo impedirà l'avvio al riavvio, che non è quello che il poster stava chiedendo.
Matthew Schinckel,

0

mysql> mostra le variabili in cui nome_variabile come '% dir%';

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


0

Dopo aver provato tutte quelle righe di comando, e non funziona. Devo fare le seguenti cose:

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

In questo modo funziona, il processo mysqld è andato. ma il /var/log/system.log ha molti rifiuti:

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.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.