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.