MySQL 5 sur Mac OS X 10.5 en 5 minutes

Ça arrive toujours par vague, il suffit de suivre un peu des newsgroups comme fr.comp.mac-os.x pour s'en apercevoir. Un type un peu désespéré se pointe avec plein de questions sur comment installer MySQL sur son nouvel OS, puis c'est s'escalade, la surenchère à qui proposera la solution la plus compliquée ou l'idée la plus saugrenue. Bien sûr au départ c'est toujours la faute du système, ou celle de MySQL. C'est rarement celle de tous ces tutoriels ou de ces conseils mal avisés glanés sur les forums les plus inattendus. Et non, bien sûr ce n'est jamais la faute du pauvre bougre qui va copier-coller dans son terminal, sans les comprendre, les commandes dictées par des inconnus.
Pourtant, installer un MySQL 5 sur Mac OS X est d'une simplicité enfantine. C'est comme à l'école des fans : même les moins doués gagnent à la fin. Je ne vais pas détailler toutes les contortions cérébrales qu'il faut faire pour rater cette installation, on trouve suffisamment d'exemples sur les forums, et ce ne serait pas chic de ma part de moquer la paresse intellectuelle de certains.

La première étape pour une installation réussie, c'est de télécharger le package officiel fourni par MySQL. Ne cédez pas à la tentation de compiler vous même MySQL, si vous avez besoin d'aide pour installer un pkg, faites preuve de bon sens et oubliez immédiatement la compilation. On trouve le précieux paquet dans la zone "Developer" du site mysql.com. Cliquez sur "MySQL Community Server" dans la marge de gauche, et dans la nouvelle page qui se charge, trouvez le lien intitulé "Mac OS X (package format)". Je ne donne pas les liens directs, car ils sont susceptibles de changer au fil des versions de MySQL.
Vous voilà en face d'une liste de packages pour Mac OS X : Mac OS X (package format) downloads. Choisissez celui qui correspond le plus à votre version du système. Actuellement pour un G5 en Mac OS X 10.4 ou 10.5 ce sera "Mac OS X 10.4 (PowerPC, 64-bit)" par exemple.

Une fois l'image disque téléchargée et montée vous voici en face de deux packages, d'un "PrefPane", et d'un readme :

  • mysql-5.0.45-osx10.4-powerpc-64bit.pkg (dans mon cas)
  • MySQLStartupItem.pkg
  • MySQL.prefPane
  • ReadMe.txt

Le premier package installe tout MySQL sur votre machine. Le second installe un StartupItem à l'ancienne (comprendre : pré-launchd). Pour un lanceur à la mode de launchd : moderne et qui marche bien, voyez cet article. Le PrefPane permet d'installer un tableau de bord MySQL dans les préférences système.
Muni d'un log/pass d'administrateur vous pouvez maintenant installer les packages par simple double-click. Jusque là, pas besoin de comprendre la théorie de la relativité. Si vous avez su taper votre mot de passe, vous avez maintenant installé MySQL.
De la même manière, double-cliquez sur le PrefPane pour l'installer. Vous pouvez l'installer pour vous uniquement, ou pour tous les utilisateurs de la machine. C'est sans incidence sur le résultat, faites comme vous préférez. Ce tableau de bord est de toute manière partiellement non-fonctionnel sous Leopard (je ne l'ai pas testé sous Tiger). Il ne permet pas de lancer ou d'arrêter MySQL via le bouton de son interface. Par contre, il permet d'activer ou non le lancement automatique du serveur MySQL au démarrage de la machine.
À partir de là, votre serveur MySQL est complètement fonctionnel. Si vous avez opté pour un lancement automatique au démarrage, vous pouvez maintenant rebooter pour vérifier que cela fonctionne, tout en vous félicitant d'avoir installé MySQL 5 en moins de 5 minutes, sans taper une seule ligne de commande dans votre terminal. Si vous souhaitez lancer le serveur sans redémarrer et que, comme dans mon cas, le bouton ad hoc du tableau de bord de fonctionne pas, vous pouvez le faire via le terminal :

  • cochez la case pour lancer MySQL automatiquement au démarrage (cela édite pour vous un fichier de configuration qui autorise aussi le lancement manuel)
  • tapez dans une fenêtre de terminal la commande
    sudo /Library/StartupItems/MySQLCOM/MySQLCOM start

Normalement, le tableau de bord doit maintenant refléter l'état du serveur, et indiquer que le serveur est fonctionnel. Si ce n'est pas le cas, c'est que vous êtes parvenu à rater une des étapes précédentes.

Désormais, il est judicieux de tester la connexion au serveur. Ouvrez une fenêtre de terminal, et taper la commande suivante :

/usr/local/mysql/bin/mysql -u root

Cela doit vous donner le résultat suivant :

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 200
Server version: 5.0.45 MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> 

Vous êtes alors connecté à votre serveur mysql local. Il est important de noter que les packages officiels de MySQL sont compilés pour stocker le socket de connexion dans /tmp/mysql.sock, et non pas dans /var/mysql/mysql.sock. Le PHP fourni par Apple quant à lui, attend ce socket dans /var/mysql/mysql.sock. Si vous souhaitez faire fonctionner des scripts PHP, vous devrez indiquer à ce dernier le chemin réel de votre socket MySQL. On fait cela en éditant le fichier /private/etc/php.ini. Ouvrez ce fichier (probablement inexistant) avec votre éditeur de texte favori, et insérez la ligne mysql.default_socket = /tmp/mysql.sock. Maintenant, PHP doit trouver tout seul le socket de MySQL. C'est facile à vérifier dans le terminal :

php -r 'mysql_connect(localhost, root, ""); echo mysql_result(mysql_query("SELECT 2+2;"),0)." ";'

Si tout fonctionne, le résultat affiché sera "4". Si cela ne fonctionne pas, c'est probablement que vous êtes incapable d'utiliser MySQL de toute manière :).

edit : en cas de pépin, faites un tour vers la checklist.

6 comments

  1. Un merci plein de gratitude à patpro pour son aide. Toutes les conneries qu'il ne faut pas faire, je les avais faites ! et je pense que sans lui, je serai encore à chercher la cause. Il est de fait qu'une fois la cause trouvée (résidu d'installation antérieure avec des tuto présentant des erreurs), la procédure ci-dessus a marché immédiatement. Il y a des moments où Dieu seul sait pourquoi, il ne nous est pas possible de croire immédiatement que les choses puissent être simples....
    Vous trouverez en contre-point du texte ci-dessus le récit des échanges qui ont abouti à la solution à l'adresse :
    pierrebrest.free.fr/docum...

    Comme vous le verrez, j'ai été la vivante illustration de ce qu'il ne faut pas faire :
    - faire des installations successives avec des tuto différents... sans chercher à expertiser les raisons et sans avoir lu la doc d'installation ici :
    dev.mysql.com/doc/refman/...

    Si mon expérience peut éviter à d'autres mes mésaventures, j'en serai ravi !

    Pierre

  2. Bonjour,

    Et merci de prendre du temps pour nous expliquer comment ne pas se tromper à travers tout ce qui traîne dans les forums divers...
    Sauf que quand on est passé par là est qu'on est coincé, on ne peut plus qu'appeler au secours...
    Voilà mon problème, j'ai suivi le tutoriel suivant : php-mysql-pour-mac-os-x-104 et activé php4 et installé mysql. Les deux semblaient bien fonctionner.

    Ayant lu sur un autre tutoriel (apache_mysql_php_sur_mac_osx qu'il valait mieux attribuer un mot de passe à mysql, j'ai donc appliqué via le terminal la commande suivante :
    /usr/local/mysql/bin/mysqladmin -u root password <password>

    N'étant en effet pas un pro des commandes unix, je n'ai pas su si il fallait mettre les signes < et > de chaque côté du password, si cela faisait partie de la syntaxe où si c'était juste pour signaler la présence d'un texte à rentrer soi-même...
    Dans le doute, je les ai tapés.

    Ensuite, j'ai tenté d'installer phpMyAdmin, mais impossible de le connecter à ma base...
    Comme je savais que la configuration de cet utilitaire était délicate, j'ai essayé ensuite CocoaMySql, mais impossible de se connecter avec, mot de passe inconnu !

    Ne sachant comment supprimer une information de mot de passe potentiellement erronée, j'ai décidé de désinstaller mySql et de tout réinstaller.

    J'ai ainsi supprimé, via le terminal, les dossiers
    mysql-5.0.51a.osx10.4-i686
    MySQLCOM
    et mysql
    dans le répertoire /usr/local

    J'ai supprimé, via le finder, le fichier mysql-5.0.51a.osx10.4-i686.pkg

    J'ai à nouveau tenté une installation , mais il m'a été signalé qu'il s'agissait alors d'une mise à jour, et j'ai eu en fin d'installation le message suivant : Des erreurs se sont produites lors de l'installation. Veuillez réessayer...

    J'ai donc un problème un peu similaire à celui de Pierre à cette différence que je ne parviens pas à supprimer tous les fichiers précédemment installés...

    Si quelqu'un voit une solution... elle est bien-sûr la bienvenue !

    D'avance merci,
    Pascal

  3. Bonjour,
    Bon, je reviens à vous, car fort de ma première expérience, je me suis dit que j'allais pouvoir aider un ami qui vient de recevoir un MacBook Air.
    Je ne vous cache pas que j'étais aussi motivé par la curiosité de tester la bête.
    Après une installation aux petits oignons avec disque dur externe branché en USB, Léopard fonctionne parfaitement et la machine est un vrai plaisir à utiliser.
    Mais les choses se corsent avec l'installation de MySQL.
    Je redonne donc ici les informations que j'ai mises sur le forum de news de Mac OS X :

    J’ai donc téléchargé le fichier d'installation de mysql ici :
    dev.mysql.com/get/Downloa...

    Un double clic sur les trois fichiers d'installation donne ceci :

    mysql-5.0.51-osx10.4-i686.pkg : L'installation a réussi !

    MySQLStartupItem.pkg : L'installation a réussi !

    Le fichier des préférences : pierrebrest.free.fr/docum...

    J’ai ensuite tapé dans le terminal :
    sudo /Library/StartupItems/MySQLCOM/MySQLCOM start

    Voici le message obtenu dans le terminal :
    Last login: Thu Feb 21 14:21:37 on console
    xxx:~ rldge$ sudo /Library/StartupItems/MySQLCOM/MySQLCOM start
    Password:
    sudo: /Library/StartupItems/MySQLCOM/MySQLCOM: command not found
    xxx:~ rldge$

    Voyant que ça ne marchait pas, j’ai redémarré complètement ma station.

    Mais un coup d’oeil sur le panneau des Préférences MySQL me montre le message :
    MySQL server instance is stopped.

    Un peu frustrant alors que je crois avoir suivi pas à pas les instructions ci-dessus avec effectivement le grand mérite d'être simples...

    J’ai alors tapé ceci dans le Terminal :
    xxx:~ rldge$ netstat -f unix | grep sql
    Résultat : une ligne vide

    J’ai donc continué avec ceci :
    xxx:~ rldge$ ps -auxwww | grep sql
    ps: No user named 'xwww'
    xxx:~ rldge$

    Vu toutes les bêtises que j’avais faites une première fois en tentant d’installer MySQL sur un portable PowerPC avec toutes sortes de tutorial, je préfère m’en tenir à celui de patpro ci-dessus et tenter de comprendre avec votre aide pourquoi je n’arrive pas à installer mySQL en 5 mn.

    Bien entendu, j'ai bien mis en route Apache et décoché la ligne qui va bien dans le fichier de configuration Apache pour activer php.
    Un test avec un fichier contenant :
    <?php phpinfo(); ?>
    montre que php fonctionne correctement
    et j'ai donc pu télécharger spip en local avec le fichier d'installation automatique en tapant :
    localhost/spip/spip_loade... dans mon navigateur.
    spip s'est téléchargé normalement après un réglage des permissions sur le dossier spip.

    C'est donc maintenant mysql qui me bloque.

    D’avance merci pour vos lumières.

    Pierre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.