Este pode ser um dos dois problemas - o mysql não está rodando, ou o mysql não está colocando o arquivo de socket em /tmp
.
Se o programa de linha de comando mysql
funcionar, então o banco de dados está ativo e é apenas que o php é compilado com o local errado para o arquivo de soquete. Se estivesse em qualquer outro lugar, você poderia apenas adicionar um link simbólico do lugar que o PHP está procurando no lugar correto, mas porque /tmp
está limpo na reinicialização, você precisará alterar o my.cnf
para escrevê-lo para /tmp
(possivelmente quebrando outras coisas) ou precisará recompilar o PHP com a opção de procurar no lugar certo , ou você pode adicionar o seguinte ao cron:
@reboot ln -s /var/mysql/mysql.sock /tmp/mysql.sock
... ajustando /var/mysql/mysql.sock
para onde quer que o local correto esteja.
Se o mysql não estiver rodando, os problemas comuns são que ele não está configurado para iniciar após a reinicialização, ou está com algum erro. Verifique os logs de erros em busca de qualquer informação, e se não houver nada lá desde a última reinicialização, você precisará fazer o método preferido de seu sabor para configurá-lo para iniciar na reinicialização.