3 votes

ERREUR ! Le fichier PID du serveur MySQL n'a pas pu être trouvé !

J'ai réinstallé MacOS Sierra sur mon ordinateur. Après avoir installé Oracle MySQL Community Server 5.7.15 (mysql-5.7.15-osx10.11), j'ai essayé d'arrêter le serveur MySQL depuis la console. J'ai obtenu l'erreur suivante "ERROR ! Le fichier PID du serveur MySQL est introuvable".

J'ai fait quelques recherches de mon côté mais je n'ai pas réussi à trouver une solution à mon problème.

Des suggestions ?

6voto

klanomath Points 63400

Démarrer et arrêter le serveur MySQL via le panneau des préférences/launchd et d'autre part via sudo /usr/local/mysql/support-files/mysql.server start/stop ne sont pas vraiment compatibles.

Après avoir choisi "Launchd Support" dans le programme d'installation de MySQL, le démon de lancement est lancé. com.oracle.oss.mysql.mysqld sera créé et le volet des préférences MySQL utilise le mécanisme launchd pour démarrer et arrêter mysql. Si vous activez l'option "Automatically Start MySQL Server on startup", mysqld est activé automatiquement après le démarrage de votre Mac.

Le nom du fichier pid créé par le démon de lancement n'est pas compatible avec celui créé et attendu par le script de mysql-server.

Le nom du fichier pid du démon de lancement créé pendant l'exécution est le suivant mysql.local.pid Le script s'attend à un nom basé sur le nom d'hôte de votre Mac, .local ou nom d'ordinateur cependant.

Donc, utilisez soit le panneau MySQL pref/launchctl, soit le script pour démarrer et arrêter mysqld.


Dans une certaine mesure, vous pouvez rendre les deux méthodes compatibles en modifiant le fichier com.oracle.oss.mysql.mysqld cependant :

Après avoir arrêté mysql, remplacez le tableau

<array>
    <string>/usr/local/mysql/bin/mysqld</string>
    <string>--user=_mysql</string>
    <string>--basedir=/usr/local/mysql</string>
    <string>--datadir=/usr/local/mysql/data</string>
    <string>--plugin-dir=/usr/local/mysql/lib/plugin</string>
    <string>--log-error=/usr/local/mysql/data/mysql.local.err</string>
    <string>--pid-file=/usr/local/mysql/data/mysql.local.pid</string>
</array>

par

<array>
    <string>/usr/local/mysql/bin/mysqld</string>
    <string>--user=_mysql</string>
    <string>--basedir=/usr/local/mysql</string>
    <string>--datadir=/usr/local/mysql/data</string>
    <string>--plugin-dir=/usr/local/mysql/lib/plugin</string>
    <string>--log-error=/usr/local/mysql/data/$name.err</string>
    <string>--pid-file=/usr/local/mysql/data/$name.pid</string>
</array>

avec $name : soit HostName (par exemple host.example.com), LocalHostName (par exemple host.local) ou ComputerName (par exemple host). Le mieux est probablement d'utiliser un nom d'hôte. Vous pouvez obtenir un nom d'hôte avec hostname avec scutil --get HostName ou le définir avec sudo scutil --set HostName your_hostname .

Vous pouvez également obtenir le nom du pid du serveur mysql script réellement utilisé - après avoir arrêté le démon de lancement et lancé mysqld avec mysql-server start - en vérifiant le répertoire de données de mysql avec sudo ls /usr/local/mysql/data . Utilisez le nom trouvé là pour ajuster le nom pid de la plist.

Vous devrez peut-être convertir le fichier du démon de lancement en xml pour le modifier. L'application TextWrangler l'ouvre immédiatement en tant que fichier xml.

Rechargez le plist avec launchctl ensuite.


Vous devriez maintenant être en mesure de démarrer et d'arrêter avec le volet préfabriqué MySQL et le script mysql.server.

Si vous avez activé "Démarrer automatiquement le serveur MySQL au démarrage", vous ne peut pas s'arrêter le serveur - même après avoir modifié le plist - avec le script parce que launchd remplace toute arrêter après quelques secondes et lance à nouveau mysqld.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X