J'ai un MBA mi-2013 sous OSX 10.9.
Le processus qui commence à chaque démarrage est mysqld
. Je crois que c’est à partir d’une ancienne version de MySQL que j’avais installée (via AMPPS ). J'ai ensuite installé MAMP Pro et j'ai souvent des conflits entre ces deux processus. Chaque fois que j'arrête et redémarre mon Mac, je dois trouver le processus en cours d' mysqld
exécution (sur le moniteur d'activité), le quitter, puis démarrer MAMP (via la commande de terminal: /Application/MAMP/bin/startMysql.sh
ne fonctionnera pas ailleurs).
Je me demande donc comment je peux empêcher cette opération mysqld
de s'exécuter à chaque démarrage.
ps
pour suivre le processus parent et voir ce qui commencemysqld
?Réponses:
Terminal ouvert, puis:
Où "xxx.xxx" est inclus dans le résultat de la première commande, par exemple "org.macports.mysql". Le mot de passe de la commande "sudo" est le mot de passe de votre propre compte utilisateur.
Il est vrai que sudo n'est pas nécessaire pour "lister", mais comme vous avez déjà indiqué un mot de passe sudo pour la première commande, il est stocké pendant une courte période dans la mémoire de session et n'est pas requis pour la deuxième commande (qui est privilégiée). Sinon, sautez simplement sudo sur la première commande et utilisez-le sur la seconde. Il y a plus d'une façon d'écorcher un chat.
la source
sudo launchctl list | grep -i mysql
ne donne aucun résultat. Ni nesudo launchctl list | grep -i mysqld
i.imgur.com/WZ5EVjw.pngSi la version de MySQL précédemment installée provient de la page Téléchargements de la communauté MySQL sur le site SUN / Oracle, il est probable que le
launchd
démarrage dumysqld
processus ne soit pas impliqué . Pour une raison quelconque, le script de démarrage distribué avec MySQL utilise la technologie obsolète "Éléments de démarrage" pour démarrer les processus au démarrage. En fait, même la distribution binaire actuelle (5.6.15) demysqld
StartupItems utilise le serveur pour démarrer le serveur sous OS X (?!)Le script de démarrage qui lance la version en conflit de MySQL est probablement situé à
/Library/StartupItems/MYSQLCOM/MYSQLCOM
. Au démarrage, cet élément de démarrage examinera le fichier à/etc/hostconfig
pour déterminer si le paramètre de la variable "MYSQLCOM" est défini sur "-YES-". Si tel est le cas, le script de démarrage sera lancémysqld
.Il devrait être possible de désactiver le démarrage de MySQL en modifiant la ligne
/etc/hostconfig
spécifiant qu'elleMYSQLCOM=-YES-
doit direMYSQLCOM=-NO-
(ce qui devrait désactiver le processus de démarrage lors du prochain démarrage).Vous pouvez mettre fin à l'instance en cours d'
mysqld
exécution en exécutant la commande suivante:Pour désactiver de manière permanente le démarrage du processus incorrect
mysqld
, il devrait être possible d'arrêter le démon en utilisant la commande ci-dessus, puis de supprimer l'élément de démarrage MySQL à l'aide de la commande suivante:Remarque: la sous -fenêtre de préférences MySQL peut également être installée sur
/Library/PreferencePanes/MySQL.prefpane
ou~/Library/PreferencePanes/MySQL.prefpane
... Cette sous-fenêtre de préférences peut également être supprimée pour "nettoyer" des éléments de l'ancienne installation MySQL.la source
sudo /Library/StartupItems/MYSQLCOM/MYSQLCOM stop
rien ne rapporte non plus: i.imgur.com/ukHtW5x.pngCe qui suit a fonctionné pour moi avec mysql
8.0.12
installé à l’aide de Homebrew dansmacOS Mojave 10.14.1
:la source
Il serait peut-être plus facile de renommer mysqld (ou de le déplacer / sauvegarder / le supprimer), puis de le redémarrer et de rechercher le message d'erreur pour l'élément de lancement qui essayait de démarrer le programme qui n'était plus disponible.
Les autres réponses semblent couvrir le besoin de rechercher des agents de lancement et des démons de lancement, ainsi que de suivre le PID qui ne fonctionne généralement pas pour les démons car ils ont généralement un PID parent de 1.
De plus, étant donné que mysql n'est pas livré avec Mavericks, vous devriez pouvoir suivre le package d'installation que vous avez sélectionné ou utiliser
mdfind mysqld
pour localiser le package qui a amené cette base de données sur votre Mac, puis recherchez les instructions de désinstallation / désactivation de ce paquet de mysql. Vous voudrez également consulter les préférences système au cas où vous y auriez installé un contrôle pour démarrer le logiciel.la source
mdfind mysqld
ne montre aucun fichier MySQL lié à AMPPS, mais uniquement des fichiers liés à MAMP (et quelques-uns des programmes MySQL que j'ai installés tels que MySQL Workbench)Commencez par rechercher le processus parent qui a démarré votre mysql. À partir du terminal, exécutez une
ps
commande pour connaître le processus. vous pouvez utiliser-j
ou-l
pour lister l'ID parentppid
. Donc, cela va vous montrer:La première colonne est votre ID utilisateur, la seconde est l'ID de processus, la troisième est l'ID parent.
Si l'ID parent est 1, il aura été lancé par le démon de lancement racine, ce qui signifie probablement qu'il provient de l'un des LaunchDaemons ou StartupItems. S'il s'agit d'un processus qui n'est pas 1 mais qu'il s'agit d'un processus launchd, il s'agit probablement des LaunchAgents ou de vos éléments de connexion système.
Ainsi, le processus 1 est lancé au démarrage du système et tout processus associé au processus parent 1 provient des démons système. Tout (dans ce cas) avec un processus parent de 257 est en cours de lancement à partir de l'un des objets LaunchAgents ou LoginItems.
Gardez à l'esprit que le nom du démon de lancement ou de l'élément de démarrage n'a pas nécessairement le nom "mysql" - il pourrait avoir été exécuté par un programme ou un élément de connexion différent (par conséquent, une simple recherche par nom peut ne pas le trouver). . Une fois que vous avez trouvé ce qui l’a lancé, vous pourrez peut-être savoir d’où il vient.
la source