Não é possível iniciar o mysql com:
130408 11:31:22 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
/usr/libexec/mysqld: Table 'plugin' is read only
130408 11:31:22 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
130408 11:31:22 InnoDB: Initializing buffer pool, size = 8.0M
130408 11:31:22 InnoDB: Completed initialization of buffer pool
130408 11:31:23 InnoDB: Started; log sequence number 0 19514977
130408 11:31:23 [ERROR] Can't start server : Bind on unix socket: Permission denied
130408 11:31:23 [ERROR] Do you already have another mysqld server running on socket: /var/lib/mysql/mysql.sock ?
130408 11:31:23 [ERROR] Aborting
130408 11:31:23 InnoDB: Starting shutdown...
130408 11:31:28 InnoDB: Shutdown completed; log sequence number 0 19514977
130408 11:31:28 [Note] /usr/libexec/mysqld: Shutdown complete
130408 11:31:28 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
Outro mysql não é runnig:
[root@triton667 etc]# ps ax | grep mysql
9195 pts/1 S+ 0:00 grep mysql
my.cnf:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
tmpdir=/tmp
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
max_allowed_packet=256M
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
As permissões em "/ tmp" e "/ var / lib / mysql" são 777 /
Alguma sugestão?
UPD1 :
[root@triton667 etc]# mysql_upgrade
Looking for 'mysql' as: mysql
Looking for 'mysqlcheck' as: mysqlcheck
Running 'mysqlcheck with default connection arguments
mysqlcheck: Got error: 2002: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) trying to connect
FATAL ERROR: Upgrade failed
UPD2 : plugin.MYD, plugin.MYI e plugin.frm existem em / var / lib / mysql / mysql /.
Nada em execução na porta 3306.
O mysql.sock não existe. Tentei criá-lo eu mesmo, mas após a reinicialização, ele foi removido.
montagem (todas as rw):
[root@triton667 mysql]# mount
/dev/md1 on / type ext4 (rw,noatime,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/md0 on /boot type ext2 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)
Esse problema apareceu hoje quando tentei clonar meu site em um subdomínio.
mysql_upgrade
como sugerido?Respostas:
1) Primeiro, certifique-se de excluir o arquivo de soquete existente usando o comando rm.
2) Mate todos os processos MySQL existentes através do seguinte comando.
3) Muito importante: verifique se a permissão para o diretório do banco de dados MySQL na
/var/lib/
pasta deve ser mysql: root4) Com as informações acima, você poderá iniciar o MySQL com êxito e o arquivo de soquete deverá ser criado com sucesso no diretório do banco de dados.
fonte
Graças à resposta de @ Abhishek combinada com a saída mysqld (Não é possível usar /var/run/mysqld/mysqld.sock), consegui resolver isso com um comando:
Então começa corretamente:
fonte
Seu problema pode ser causado por qualquer condição que impeça o daemon MySQL de gravar um arquivo de soquete no caminho
/var/lib/mysql
. As outras respostas, como um sistema de arquivos somente leitura ou propriedade incorreta do diretório, abordam vários motivos pelos quais o MySQL pode não ser capaz de gravar no soquete.Outro motivo possível é que
/var/lib/mysql
o contexto do SELinux está incorreto. Você pode diagnosticar essa condição, verificando se há recentes recusas do SELinux AVC após tentar iniciar o daemon MySQL:ausearch -m avc --start recent
Se o SELinux estiver negando acesso para criar o arquivo de soquete, você verá uma mensagem de erro como esta:
Para resolver uma negação do SELinux, tente restaurar o contexto padrão do diretório (sua distribuição deve definir o contexto correto
mysqld_db_t
quando você instalou o MySQL ou o MariaDB):restorecon -R -v -f /var/lib/mysql
Se você personalizou os contextos no seu sistema, a correção do problema está além do escopo desta postagem.
fonte
Com base no que você escreve, sugiro que você verifique se o seu sistema de arquivos está montado como somente leitura.
fonte
Tentei todas as outras respostas para resolver o problema. Parece que quando defino o selinux como permissivo:
setenforce 0
eu poderia iniciar o servidor.Em seguida, alterei o diretório sock,
/var/lib/mysql
concedendo permissões selinux ao diretório:Uma vez feito, habilito o selinux usando
setenforce 1
o serviço mysql e tudo estava bem.Espero que isso ajude os outros.
fonte