rendimiento - optimizar tablas grandes mysql
MySQL Job no se pudo iniciar (12)
Estoy en Kubuntu 12.04, y después de instalar mysql a través de un apt-get (mysql ver: 5.5.35), estoy intentando iniciar el servicio mysql, pero recibí este error:
sudo service mysql start
inicio: el trabajo no se pudo iniciar
Así que busqué en Google este problema, dice que tengo que ir a /var/log/mysql/error.log
Pero mi archivo error.log está vacío :(
Luego revisé los permisos:
drwxr-s --- 2 mysql adm 4096 7 de abril 11:21 mysql
-rw-r ----- 1 mysql adm 0 abr 7 11:21 error.log
Así que no sé qué hacer ... ¿Por qué este error? ¿Por qué el archivo de error está vacío?
Compruebe los permisos de archivo, si está editado
Fallar:
$ sudo chmod 776 /etc/mysql/my.cnf
$ sudo service mysql restart
mysql stop/waiting
start: Job failed to start
De acuerdo:
$ sudo chmod 774 /etc/mysql/my.cnf
$ sudo service mysql restart
stop: Unknown instance:
mysql start/running, process 9564
En la mayoría de los casos, simplemente purgar el paquete mysql-server y reinstalarlo hará el trabajo.
Correr,
sudo apt-get purge mysql-server-5.1 mysql-common
seguido por
sudo apt-get install mysql-server
En mi caso, hago:
-
sudo nano /etc/mysql/my.cnf
- buscar nombres de
bind
e IPs - elimine el específico y deje solo localhost 127.0.0.1 y el nombre de host
En mi caso, simplemente porque el disco está lleno. Simplemente libere algo de espacio en el disco y reinicie y todo está bien.
En mi caso:
- reiniciar el servidor
- reiniciar mysql
- crear .socket en el directorio
Esta línea resolvió el problema en mi caso,
sudo apt clean
La reinstalación funcionará porque restablecerá todos los valores a los valores predeterminados. Es mejor encontrar cuáles son los verdaderos culpables (ocurre el error de edición de my.cnf, por ejemplo, una sugerencia de parámetro incorrecta / desactualizada durante el ajuste de mysql).
Aquí está el diagnóstico de mysql si sospecha que algún valor es incorrecto dentro de my.cnf: ejecute mysqld para mostrarle los resultados.
sudo -u mysql mysqld
Después, corrija todos los errores de la tecla my.cnf que aparecen en la pantalla hasta que mysqld se inicie correctamente.
Luego reinicie usando
sudo service mysql restart
La solución dada requiere suficiente HDD libre, el problema real fue la falta de memoria en el HDD. Entonces, si no tiene un servidor alternativo o espacio libre en el disco, necesita alguna otra alternativa.
Me enfrenté a este error con mi servidor de producción (Linode VPS) cuando estaba ejecutando una descarga masiva en MySQL. No es una solución adecuada, pero MUY RÁPIDO REVISIÓN, que a menudo necesitamos en la producción para que las cosas SE VAN RÁPIDAS.
- Cambiar el tamaño de nuestro servidor VPS a un tamaño de disco duro más alto
- Iniciar MySQL, funciona.
- Inicie sesión en su instancia de MySQL y realice los ajustes apropiados que causaron este error (por ejemplo, elimine algunos registros, tablas o realice copias de seguridad de la base de datos en su máquina local que no se requieren en la producción, etc.
- Baje la calificación de su servidor VPS al paquete anterior que ya estaba usando
Mi problema se estaba quedando sin memoria. Digital ocean tiene una gran instrucción para agregar memoria de intercambio para Ubuntu: https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-ubuntu-14-04
Esto resolvió el problema y me permitió reiniciar el Mysql que, de lo contrario, no se iniciaría.
Para ayudar a otros que no tienen un disco lleno para solucionar este problema, primero inspeccione su registro de errores (para mí, la ruta se encuentra en mi archivo /etc/mysql/my.cnf
):
tail /var/log/mysql/error.log
Mi problema resultó ser una nueva dirección IP asignada después de la reconfiguración de un enrutador de red, por lo que tuve que cambiar la variable de bind-address
.
Primero haga una copia de seguridad de su directorio / var / lib / mysql / para estar seguro.
sudo mkdir /home/<your username>/mysql/
cd /var/lib/mysql/
sudo cp * /home/<your username>/mysql/ -R
Luego elimine MySQL (esto eliminará php5-mysql y phpmyadmin, así como otras bibliotecas, así que prepárese para reinstalar algunos elementos después de esto.
sudo apt-get purge mysql-server-5.1 mysql-common
Elimina la carpeta / etc / mysql / y su contenido
sudo rm /etc/mysql/ -R
A continuación, compruebe que sus antiguos archivos de base de datos todavía están en / var / lib / mysql / si no están, luego cópielos de nuevo en la carpeta y luego haga clic en root: root
(solo ejecútalos si los archivos ya no están allí)
sudo mkdir /var/lib/mysql/
sudo chown root:root /var/lib/mysql/ -R
cd ~/mysql/
sudo cp * /var/lib/mysql/ -R
A continuación instale el servidor mysql
sudo apt-get install mysql-server
Finalmente, vuelva a instalar los paquetes faltantes como phpmyadmin y php5-mysql.
Yo tuve el mismo problema. Pero descubro que mi hd está lleno.
$ sudo cat /var/log/upstart/mysql.log
/proc/self/fd/9: ERROR: The partition with /var/lib/mysql is too full!
Entonces corro
$ df -h
Y recibí el mensaje.
/dev/xvda1 7.8G 7.4G 0 100% /
Luego descubrí qué carpeta estaba llena ejecutando el siguiente comando en el terminal
$ cd /var/www
$ for i in *; do echo $i; find $i |wc -l; done
Esto me da el número de archivos en cada carpeta en / var / www. Ingresé a la carpeta con la mayoría de los archivos, borré algunos archivos de respaldo y continué eliminando archivos inútiles y archivos de caché.
luego ejecuto $ sudo /etc/init.d/mysql start y vuelve a funcionar