Comment arrêter MySQL sur une installation Mac OS?

187

J'ai installé MySQL via MacPorts . De quelle commande ai-je besoin pour arrêter le serveur (je dois tester le comportement de mon application lorsque MySQL est mort)?

Laurie Young
la source

Réponses:

377

Il existe différents cas selon que vous avez installé MySQL avec le programme d'installation binaire officiel, en utilisant MacPorts ou en utilisant 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

Remarque: ceci est persistant après un redémarrage.

Installateur binaire

sudo /Library/StartupItems/MySQLCOM/MySQLCOM stop
sudo /Library/StartupItems/MySQLCOM/MySQLCOM start
sudo /Library/StartupItems/MySQLCOM/MySQLCOM restart
mloughran
la source
Merci beaucoup - j'avais les commandes d'arrêt et de démarrage, mais je ne savais pas / pensais essayer de redémarrer. Après avoir utilisé la commande stop, start ne ferait rien, comme le ferait à partir du panneau Préférences système MySQL.
Ross Henderson le
4
Dans mon cas, c'était légèrement différent, car le numéro de version de mysql a été ajouté dans le fichier plist. C'était comme ça: sudo launchctl unload -w /Library/LaunchDaemons/org.macports.mysql5.plist sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist
d1rk
1
Et pour moi, /opt/local/etc/LaunchDaemons/org.macports.mysql5/org.macports.mysql5.plist
Dmitry Minkovsky
10
Et pour les homebrews:launchctl (un)load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Kostas
2
Si vous avez installé Homebrew Services , vous pouvez utiliser brew services stop mysqlet brew services start mysql. (Aussi restart, et runqui commence pour la session en cours uniquement.)
medmunds
138

Pour ceux qui ont utilisé homebrew pour installer MySQL, utilisez les commandes suivantes ci-dessous pour démarrer, arrêter ou redémarrer MySQL

Début de l'infusion

/usr/local/bin/mysql.server start

Redémarrage de l'infusion

/usr/local/bin/mysql.server restart

Arrêt de l'infusion

/usr/local/bin/mysql.server stop
pjammer
la source
4
Pour moi, le répertoire d'installation par homebrew est/usr/local/Cellar/[email protected]/5.7.23/bin/
Moobie
68

Vous pouvez toujours utiliser la commande "mysqladmin shutdown"

Rimantas
la source
1
Les commandes ci-dessus ne fonctionnaient pas pour moi. Celui-ci l'a fait. Je ne sais pas quelle est la différence dans ma configuration, mais merci.
Marco
2
Même si cela peut fonctionner, si vous utilisez MacPorts et exécutez ceci, launchctl ne réalisera pas que mysql s'est arrêté et se plaindra si vous essayez de le démarrer (charger). L'utilisation de launchctl est donc préférable.
lambshaanxy
1
De plus, bien que cela fonctionne pour arrêter le serveur, cela ne fera rien pour vous aider à le remettre en marche lorsque vous souhaitez le redémarrer.
aroth
3
N'oubliez pas d'ajouter -p et entrez votre mot de passe root mysql lorsque vous y êtes invité. Dans ma configuration où mysql est installé avec MacPorts mysql redémarré, et rechargé la configuration, qui était la cible de mon action.
Jesper Grann Laursen
sudo /opt/local/lib/mysql56/bin/mysqladmin shutdownsi votre mysql provient de MacPorts
Alain Tiemblo
51

Si vous utilisez, homebrewvous pouvez utiliser

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

pour une liste des services disponibles

brew services list
Jan
la source
2
Cela a fonctionné pour moi, même après avoir interagi directement avec launchctl n'a pas fonctionné. Je vous remercie!
Lyndsy Simon
19

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

Moesio
la source
2
+1 ce n'était que celui qui a fonctionné pour moi --- je viens d'utiliser le programme d'installation DMG de Mysql. Merci
Dolan Antenucci
15

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

Vous pouvez également utiliser démarrer et redémarrer ici. J'ai trouvé cela en regardant le contenu de /Library/LaunchDaemons/org.macports.mysql.plist.

katy lavallee
la source
1
C'est comme ça que vous êtes censé le faire. Pour MacPorts .. La launchctlméthode ne fonctionne PAS, et en fait peut causer des problèmes avec le démarrage PID / DB et les gémissements.
Alex Gray
11

Essayer

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

Sinon essayez:

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

Cependant, j'ai trouvé que la deuxième option ne fonctionnait (OS X 10.6, MySQL 5.1.50) que si le .plist était chargé avec:

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

PS: j'ai également trouvé que je devais décharger le .plist pour obtenir une installation indépendante de MAMP -MySQL pour démarrer / arrêter correctement. Après avoir exécuté ceci, MAMP-MySQL démarre très bien:

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

zack
la source
7

Sur mon mac osx yosemite 10.10. Cette commande a fonctionné:

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

Vous pouvez trouver votre fichier mysql dans le dossier / Library / LaunchDaemons / à exécuter

Duc Chi
la source
2
C'est la seule façon qui a fonctionné pour moi. Pour toutes les autres méthodes, le mysqldprocessus redémarre immédiatement après son arrêt.
Rockallite
C'est la seule façon qui a fonctionné pour moi aussi. Je suis passé de l'homebrew au DMG fourni par MySQL et je pense que la version de brassage fonctionnait toujours même si je l'ai désinstallée.
Sam Critchley
5

Utilisation:

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

On pourrait probablement s'en tirer sans utiliser sudo . L' utilisateur peut être root par exemple (c'est-à-dire l'utilisateur root MySQL).

Steve
la source
4

Eh bien, si tout le reste échoue, vous pouvez simplement adopter une approche impitoyable et tuer le processus exécutant MySQL manuellement.

C'est,

ps -Af

pour lister tous les processus, puis faites " kill <pid>" où <pid>est l'ID de processus du démon MySQL (mysqld).

John Montgomery
la source
ouais .. celui-ci est le meilleur et universel pour les scripts. Pensez-vous qu'il existe une possibilité de corruption des données? ou tout autre problème?
user425720
1
Cela peut entraîner une corruption des données.
Dan Sandland
Mais comme dernier effort, c'est suffisant.
Dan Sandland
4

Derniers OSX (10.8) et mysql 5.6, le fichier est sous Launch Daemons et est com.oracle.oss.mysql.mysqld.plist. Il présente une option sous Options du système, généralement au bas de la liste. Allez donc dans les paramètres système, cliquez sur Mysql et désactivez-le dans la boîte d'options. https://dev.mysql.com/doc/refman/5.6/en/osx-installation-launchd.html

ppostma1
la source
2

Pour moi, cela fonctionne avec un "mysql5"

sudo launchctl unload -w /Library/LaunchDaemons/org.macports.mysql5.plist
sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist
Tout est un
la source
2

Dans mon cas, il a continué à redémarrer dès que j'ai tué le processus en utilisant PID. De plus, la brew stopcommande ne fonctionnait pas comme je l'ai installée sans utiliser homebrew. Ensuite, je suis allé dans les préférences du système mac et MySQL y est installé. Ouvrez-le simplement et arrêtez le serveur MySQL et vous avez terminé. Ici, dans la capture d'écran, vous pouvez trouver MySQL en bas des préférences système.entrez la description de l'image ici

farceur
la source
1

Sur OSX Snow Leopard

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

J'ai installé mysql5 et mysql55 sur macports. Pour moi, les fichiers mentionnés ici se trouvent aux endroits suivants:

(serveur-mysql55) /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

Alors arrêtez-vous pour ces travaux comme ceci:

serveur mysql55:

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 

Vous pouvez vérifier si le service est toujours en cours d'exécution avec:

ps ax | grep mysql

De plus, vous pouvez vérifier les fichiers journaux dans mon cas ici:

serveur mysql55

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
la source
0

Si vous avez installé le package MySQL 5 avec MacPorts:

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

Ou

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

si vous avez installé le mysql5-develpackage.

Bartosz Blimke
la source
1
Cela l'empêchera de démarrer au redémarrage, ce qui n'est pas ce que l'affiche demandait.
Matthew Schinckel
0

mysql> affiche les variables où nom_variable comme '% dir%';

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

Jack Peng
la source
0

Après avoir essayé toutes ces lignes de commande, et cela ne fonctionne pas, je dois faire les choses suivantes:

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

De cette façon, le processus mysqld est parti. mais le /var/log/system.log contient beaucoup de déchets:

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.
homme de bronze
la source