No se puede iniciar mysql con:
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
Otro mysql no se está ejecutando:
[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
Los permisos en "/ tmp" y "/ var / lib / mysql" son 777 /
¿Alguna sugerencia?
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 y plugin.frm existen en / var / lib / mysql / mysql /.
Nada se ejecuta en el puerto 3306.
mysql.sock no existe. Traté de crearlo yo mismo, pero después de reiniciar se eliminó.
montaje (todo 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)
Este problema apareció hoy cuando intenté clonar mi sitio en un subdominio.
mysql_upgrade
como se sugiere?Respuestas:
1) Primero asegúrese de eliminar el archivo de socket existente con el comando rm.
2) Elimine todos los procesos MySQL existentes mediante el siguiente comando.
3) Muy importante: asegúrese de que el permiso para el directorio de la base de datos MySQL en la
/var/lib/
carpeta debe ser mysql: root4) Con la información anterior, debería poder iniciar MySQL con éxito y el archivo de socket debería crearse correctamente en el directorio de la base de datos.
fuente
Gracias a la respuesta de @ Abhishek combinada con la salida de mysqld (No se puede usar /var/run/mysqld/mysqld.sock) logré resolver esto con un comando:
Entonces comienza correctamente:
fuente
Su problema puede ser causado por cualquier condición que evite que el demonio MySQL escriba un archivo de socket en la ruta
/var/lib/mysql
. Las otras respuestas, como un sistema de archivos de solo lectura o una propiedad de directorio incorrecta, abordan varias razones por las que MySQL puede no ser capaz de escribir en el socket.Otra posible razón es que
/var/lib/mysql
puede tener un contexto SELinux incorrecto. Puede diagnosticar esta condición comprobando las recientes denegaciones de SELinux AVC después de intentar iniciar el demonio MySQL:ausearch -m avc --start recent
Si SELinux niega el acceso para crear el archivo de socket, verá un mensaje de error como este:
Para resolver una negación de SELinux, intente restaurar el contexto predeterminado del directorio (su distribución debe establecer el contexto correcto de
mysqld_db_t
cuándo instaló MySQL o MariaDB):restorecon -R -v -f /var/lib/mysql
Si ha personalizado los contextos en su sistema, solucionar el problema está más allá del alcance de esta publicación.
fuente
Según lo que escriba, sugeriría que verifique si su sistema de archivos está montado como de solo lectura.
fuente
Intenté todas las otras respuestas para resolver el problema. Parece que cuando configuro selinux en permisivo:
setenforce 0
podría iniciar el servidor.Luego modifiqué el directorio de calcetines
/var/lib/mysql
otorgando permisos de selinux al directorio:Una vez hecho esto, habilito selinux usando
setenforce 1
el servicio mysql y todo estuvo bien.Espero que esto ayude a otros.
fuente