Dans un précédent article j'ai exposé l'installation triviale d'un MySQL 5 sur une base de Mac OS X 10.5 propre. J'ai aussi mentionné le StartupItem fourni de base avec le package MySQL. Ce StartupItem étant conçu pour Mac OS X 10.4, il est intéressant de voir comment on doit maintenant lancer un serveur MySQL sur Leopard.
Si vous aviez installé le script de démarrage de MySQL 5 mentionné dans le précédent article, il faudra le désactiver ou le supprimer. Pour le supprimer, vous pouvez exécuter les commandes suivantes dans le terminal :
sudo /Library/StartupItems/MySQLCOM/MySQLCOM stop sudo rm -r /Library/StartupItems/MySQLCOM sudo rm /tmp/mysql.sock
Ensuite, vous pouvez créer le fichier /Library/LaunchDaemons/org.mysql.mysqld.plist
avec votre éditeur favori, et coller dedans :
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>org.mysql.mysqld</string> <key>OnDemand</key> <false/> <key>ProgramArguments</key> <array> <string>/usr/local/mysql/bin/mysqld</string> <string>--socket=/tmp/mysql.sock</string> <string>--user=mysql</string> <string>--port=3306</string> <string>--datadir=/usr/local/mysql/data</string> <string>--pid-file=/usr/local/mysql/data/localhost.pid</string> <string>--bind-address=127.0.0.1</string> </array> <key>ServiceIPC</key> <false/> </dict> </plist>
Une fois que ce fichier est sauvé, il faut s'assurer qu'il appartient bien à root, sinon launchctl vous envoie sur les roses (cf. les commentaires de Pierre29). Dans le doute, exécutez la commande
sudo chown root /Library/LaunchDaemons/org.mysql.mysqld.plist
Vous pouvez ensuite activer ce plist par la commande
sudo launchctl load /Library/LaunchDaemons/org.mysql.mysqld.plist
MySQL devrait être alors lancé automatiquement pour vous. Il placera son socket dans /tmp/
et autorisera aussi les connexions TCP sur l'interface 127.0.0.1
.
Je vous renvoie à la documentation de launchctl pour le reste des options et commandes disponibles et pour les détails sur l'utilisation de launchd. Votre serveur MySQL est désormais géré proprement par launchd, exactement comme sur un Mac OS X Serveur.
edit : ajout du chown root sur le fichier
Bon, j'ai du me résoudre à utiliser cette astuce de lancement puisque que contrairement à l'installation que j'ai faite sur un PowerPC sans avoir besoin de ce script, sur le MacBook Air, MySQL ne se lance pas tout seul...
Seulement voilà ce que j'obtiens dans le terminal :
----
xxx:/ rldge$ sudo launchctl load /Library/LaunchDaemons/org.mysql.mysqld.plist
launchctl: Dubious ownership on file (skipping): /Library/LaunchDaemons/org.mysql.mysqld.plist
nothing found to load
xxx:/ rldge$
----
Mon fichier org.mysql.mysqld.plist est pourtant bien au bon endroit avec le bon contenu...
Une idée ?
Merci
Pierre
Finalement, contrairement à ce que j’avais cru, mySQL ne démarre pas tout seul au lancement de la machine.
J’ai alors lu avec intérêt l’article ci-dessus :
http://www.patpro.net/blog/index...
Malheureusement, comme indiqué dans mon premier commentaire, cela n’a pas fonctionné pour moi.
D’une part, les commandes :
sudo /Library/StartupItems/MySQLCOM/MySQLCOM stop
sudo rm -r /Library/StartupItems/MySQLCOM
ont envoyé un message d’erreur.
D’autre part, en exécutant la commande :
sudo launchctl load /Library/LaunchDaemons/org.mysql.mysqld.plist launchctl
J’obtiens un nouveau message d’erreur.
En désespoir de cause, je me suis donc rabattu sur l’article ici :
hivelogic.com/articles/in...
et j’ai appliqué le paragraphe :
--
edit de patpro : je renvoie les gens à l'url que tu mentionnes pour les détails. La ligne intéressante étant celle-ci :
--
sudo chown root /Library/LaunchDaemons/com.mysql.mysqld.plist
Cela fonctionne maintenant pour moi de manière satisfaisante.
Pierre
Effectivement, comme tu le fais remarqué, j'ai oublié de mentionner le chown root du fichier. D'ailleurs, le message d'erreur de launchctl aurait du te mettre la puce à l'oreille :)
Je vais rajouter cette commande dans l'article. Merci.