Então, você está inicializando um novo ambiente local pela primeira vez ou talvez tenha feito alguma forma de atualização do sistema e tenha perdido suas configurações. Você não usa OSX nativo e prefere usar uma pilha MAMP. Você também se acostumou a usar a linha de comando para tudo – até mesmo para a maioria das consultas ao banco de dados. Você tem o MAMP inicializado e o mySQL em execução, mas tenta se conectar ao mySQL
mysql -u root -ppassword
BAM.
Não é possível conectar ao servidor MySQL local através do socket /tmp/mysql.sock
Uh o quê? Por que você está tentando usar o mySQL que não veio com meu MAMP? Bem, descobrimos que existem duas maneiras de lidar com isso. Fiz a solução menos elegante primeiro, antes de encontrar a solução de causa raiz mais recentemente.
O cliente mySQL, por padrão, tenta se conectar por meio de um arquivo local denominado soquete em vez de se conectar ao endereço de loopback (127.0.0.1) para localhost. A localização padrão deste arquivo de soquete, pelo menos no OSX, é /tmp/mysql.sock.
SOLUÇÃO RÁPIDA E MENOS ELEGANTE
Crie um link simbólico para enganar o sistema operacional para que encontre o soquete correto.
ln -s /Applications/MAMP/tmp/mysql/mysql.sock /tmp/mysql.sock
Você precisará reinicializar seu mySQL antes que isso tenha efeito.
SOLUÇÃO ADEQUADA
Você pode fazer uma mudança no arquivo de configuração MySQL nativo (/etc/my.cnf) que irá definir permanentemente o arquivo de socket usado pelo cliente MAMP mySQL.
Este artigo de Quinn McHenry mostra as poucas linhas de código para fazer isso, embora eu o avise que o destino para os usuários do MAMP deve ser algo como:
/Applications/MAMP/tmp/mysql/mysql.sock
e isso será definido explicitamente no arquivo startMysql.sh em / Applications / MAMP / bin.
Esperançosamente, isso ajuda a evitar que alguém tenha uma manhã difícil.