Changer l’emplacement de mysql.sock avec MAMP

Si comme moi vous utilisez le serveur MySQL fourni avec MAMP pour d’autres usages que le développement PHP, par exemple comme gestionnaire de base de données pendant la création d’applications Django ou Ruby on Rails, il peut être utile de changer l’emplacement de son socket UNIX vers un emplacement plus commun, qui sera trouvé automatiquement par ces applications. Par exemple /tmp/mysql.sock.

Pour ce faire il va nous falloir modifier les script de lancement et d’arrêt de MySQL. Rendons nous dans le dossier bin de MAMP :
cd /Applications/MAMP/bin

Et sauvegardons les scripts dans leur version actuelle :
cp startMysql.sh startMysql.old.sh
cp stopMysql.sg stopMysql.old.sh

Éditons maintenant ces deux fichiers avec notre éditeur de texte préféré (pour ma part ça donnera vim startMysql.sh stopMysql.sh) et remplaçons les occurrences de /Applications/MAMP/tmp/mysql/mysql.sock par /tmp/mysql.sock. Sauvegardez ces deux fichiers puis relancez MAMP.

Vos applications extérieures à MAMP seront désormais à même de se connecter au serveur MySQL via socket UNIX sans configuration particulière… en revanche impossible de se connecter au serveur via PHP. Effectivement, il nous faut également mettre à jour la configuration de PHP.

Éditons le fichier /Applications/MAMP/conf/php5/php.ini (ou /Applications/MAMP/conf/php4/php.ini si vous utilisez encore PHP 4) et remplaçons la ligne mysql.default_socket = /Applications/MAMP/tmp/mysql/mysql.sock par mysql.default_socket = /tmp/mysql.sock.

Redémarrez à nouveau MAMP et tout devrait fonctionner correctement !