Novembre 2014 : Si vous obtenez cette erreur sur MySQL 5.6.x sur Mac OS X Mavericks ou Yosemite et que vous souhaitez utiliser MySQL avec PHP en local (/tmp/mysql.sock est l'endroit où PHP PDO s'attend à trouver le fichier sock), voici ce qui l'a résolu pour moi :
1) Décommentez les lignes du fichier de configuration homebrew par défaut et éditez comme ci-dessous
$ sudo vi /usr/local/Cellar/mysql/5.6.21/my.cnf
...
basedir = /usr/local/Cellar/mysql/5.6.21
datadir = /usr/local/var/mysql
port = 3306
server_id =
socket = /tmp/mysql.sock
pid-file = /usr/local/var/mysql/[BOXNAME].local.pid
....
BOXNAME est ce que vous avez dans Préférences Système -> Réseau en tant qu'identifiant unique pour votre ordinateur sur le réseau.
2) Définissez les autorisations sur tous les fichiers dans le répertoire de données mysql. Ils étaient tous possédés par [mon_nom_d'utilisateur]. MySQL est très pointilleux à ce sujet et refuse de créer le fichier pid à moins que lui-même (l'utilisateur _mysql) ne possède le répertoire.
$ sudo chown -R _mysql:mysql /usr/local/var/mysql
3) Démarrez MySQL en utilisant le script d'aide/enveloppe bash :
$ sudo mysql.server start
Starting MySQL
. SUCCESS!
J'espère que cela vous aidera. Si ce qui précède ne fonctionne pas pour vous, essayez d'exécuter manuellement le binaire mysqld_safe dans le répertoire Cellar/mysql/VERSION_/bin/ et vérifiez quelles sont les configurations (s'il s'exécute)
sudo /usr/local/Cellar/mysql/5.6.12/bin/mysqld_safe &
Si cela fonctionne, vous pouvez
ps aux | grep mysql
et voir quelque chose comme
[nom_d_utilisateur] 6881 0.0 2.7 3081392 454836 ?? S 8:52AM 0:00.54 /usr/local/Cellar/mysql/5.6.21/bin/mysqld --basedir=/usr/local/Cellar/mysql/5.6.21 --datadir=/usr/local/var/mysql --plugin-dir=/usr/local/Cellar/mysql/5.6.21/lib/plugin --verbose --log-error=/usr/local/var/mysql/BOXNAME.local.err --pid-file=/usr/local/var/mysql/BOXNAME.local.pid
Je ne sais pas pourquoi cela a fonctionné pour moi mais cela vous montre d'où je tire les options du fichier de configuration my.cnf. Vous pouvez également utiliser les options de ligne de commande pour essayer de diagnostiquer lorsque vous démarrez mysqld manuellement.
Si vous parvenez à démarrer le serveur MySQL en utilisant mysqld_safe, vous devrez peut-être faire cela pour l'arrêter avant d'essayer l'aide bash mysql.server. Résistez à l'envie de kill -9 [PID] car vous pourriez corrompre vos données.
mysqladmin -uroot shutdown
Bonne chance !