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

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

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

4
Pour moi, le répertoire d'installation par homebrew est/usr/local/Cellar/mysql@5.7/5.7.23/bin/
Moobie

68

Vous pouvez toujours utiliser la commande "mysqladmin shutdown"


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

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


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.


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


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


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


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


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


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

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


1

Sur OSX Snow Leopard

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

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

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.


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


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.
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.