Seu problema pode ser causado por qualquer condição que impeça o daemon do MySQL de escrever um arquivo de soquete para o caminho /var/lib/mysql
. As outras respostas, como um sistema de arquivos somente para leitura ou a propriedade incorreta do diretório, tratam de várias razões que o MySQL pode não conseguir gravar no soquete.
Outro possível motivo é que /var/lib/mysql
pode ter o contexto incorreto do SELinux. Você pode diagnosticar esta condição verificando as negações recentes do SELinux AVC após tentar iniciar o daemon do MySQL:
ausearch -m avc --start recent
Se o SELinux está negando acesso para criar o arquivo de soquete, você verá uma mensagem de erro como esta:
time->Thu Feb 2 03:46:27 2017
type=SYSCALL msg=audit(1566106187.784:152): arch=c000004e syscall=49 success=no exit=-13 a0=4f a1=7ff3fd652e80 a2=6e a3=7fcd2d6523d40 items=0 ppid=1 pid=1820 auid=4294967295 uid=996 gid=994 euid=996 suid=996 fsuid=996 egid=994 sgid=994 fsgid=994 tty=(none) ses=4294967295 comm="mysqld" exe="/usr/sbin/mysqld" subj=system_u:system_r:mysqld_t:s0 key=(null)
type=AVC msg=audit(1566106187.784:152): avc: denied { create } for pid=1820 comm="mysqld" name="mysql.sock" scontext=system_u:system_r:mysqld_t:s0 tcontext=system_u:object_r:var_log_t:s0 tclass=sock_file
Para resolver uma negação do SELinux, tente restaurar o contexto padrão do diretório (sua distribuição deve definir o contexto correto de mysqld_db_t
quando você instalou o MySQL ou o MariaDB):
restorecon -R -v -f /var/lib/mysql
Se você personalizou os contextos em seu sistema, corrigir o problema está além do escopo desta postagem.