MySQL, Can't connect to local MySQL

  • warning: array_map(): Argument #2 should be an array in /var/www/titouille.ch/www/modules/system/system.module on line 1050.
  • warning: array_keys() expects parameter 1 to be array, null given in /var/www/titouille.ch/www/includes/theme.inc on line 1845.
  • warning: Invalid argument supplied for foreach() in /var/www/titouille.ch/www/includes/theme.inc on line 1845.
Portrait de titouille

Maintenant que j'ai un mac et que je me suis un peu amusé avec, les choses sérieuses commencent.

Un serveur web, c'est tout de même la base pour un développeur "Web" si je peux me considérer comme tel, vu que ça fait un moment que je fais du Flex plutôt que du php ou d'autres langages web.

J'ai donc entrepris l'installation d'un serveur web Apache(2) / PHP(5) / MySQL(5). Pour Apache et PHP, ça n'était pas trop difficile. Apache 2 étant installé nativement sur Leopard, il était simplement nécessaire d'éditer le fichier etc/apache2/httpd.conf pour y inclure le support de php.

Avant cela, j'avais déjà installé MySQL5 ainsi que les MySQL GUI Tools (mysql administrator et mysql query browser).

J'ai donc réinstallé mes classes php partagées, mes projets web, la partie "Flash remoting" avec amfphp et tenté d'exécuter un projet, en espérant que tout fonctionnerai (je tournais avec des anciennes versions de chacune de ces applications, certains problèmes de compatibilités pouvaient donc survenir à tout moment). Il a également fallu que je réinstalle mon FlashTracer pour pouvoir

Bien entendu, ça n'était pas si simple. Après avoir eu de simples problèmes sur les droits des répertoires, je me suis retrouvé avec des problèmes de connexion avec le serveur de base de données. Après investigation dans les logs j'ai détecté l'erreur suivante :

Can't connect to local MySQL server through socket '/var/mysql/mysql.sock'

Bien sûr, ne connaissant encore pas grand chose au système, j'ai commencé par faire quelques recherches sur le net afin de comprendre le problème, et il est directement lié au fichier mysql.sock.

Recherche du répertoire mysql dans /var, rien... Le problème est que j'ai mis du temps à repérer le véritable répertoire qui le contient, qui est /tmp, tout simplement.

C'est sur le site d'apple, dans les forums de discussions que j'ai trouvé la solution. Tout simplement faire un lien symbolique sur le fichier situé dans le répertoire /tmp grace à l'utilisation du terminal.

Je lance donc un terminal, et j'y tape les commandes suivantes :

# déplacement dans le répertoire /var
cd /var
# création d'un répertoire nommé 'mysql' (+demande du password)
mkdir mysql
# déplacement dans ce nouveau répertoire 'mysql'
cd /mysql
# création du lien symbolique redirigeant vers le bon fichier
sudo ln -s /private/tmp/mysql.sock mysql.sock

Je recharge ma page, et cette fois, tout fonctionne !!

Je sens bien que ces premières infos vont surement me resservir si j'ai à réinstaller un serveur web, autant tout de suite les écrire