Na maioria dos servidores *nix, o "localhost" é tratado por meio de um soquete estilo Unix. Se você usar 127.0.0.1, ele usará TCP/IP. Tente isso ou certifique-se de que seu cliente e servidor estejam usando o mesmo endereço de soquete e que seja realmente um soquete *nix utilizável.
Existe um parâmetro de configuração em database.yml que permite definir o endereço do soquete, certifique-se de que você também tenha acesso ao diretório.