Cómo reiniciar MySQL

32

Estoy ejecutando MySQL 5.1.54 y lo instalé en Ubuntu a través del terminal usando el comando

sudo apt-get install mysql-server

Cambié el my.cnfarchivo y me gustaría detener y luego iniciar la base de datos. He intentado lo siguiente

sudo /usr/bin/mysqld_safe stop

Mi pregunta es ¿cómo sé que la base de datos está detenida? Cuando ejecuto el comando anterior, seguido de

sudo mysql -uuser -ppassword

Puedo volver a iniciar sesión en la base de datos. ¿No debería decirme que la base de datos no se está ejecutando?

¿Alguna sugerencia? Gracias.

EDITAR: también he intentado

mysqladmin -uuser -ppassword shutdown

y entonces

ps aux | grep mysql

Me sale el siguiente resultado

david    12093  0.0  0.0   6052  1276 pts/1    T    May10   0:00 nano /etc/mysql/my.cnf
root     12267  0.0  0.0   6396  1436 pts/1    T    May10   0:00 sudo nano /etc/mysql/my.cnf
root     12269  0.0  0.0   6052  1388 pts/1    T    May10   0:00 nano /etc/mysql/my.cnf
mysql    15371  0.3  0.1  55344  9088 ?        Ssl  10:53   0:00 /usr/sbin/mysqld
david    15512  0.0  0.0   5304   864 pts/1    R+   10:54   0:00 grep --color=auto mysql

¿El resultado anterior significa que MySQL se ha cerrado? Si corro mysql -uuser -ppasswordtodavía puedo iniciar sesión en mysql.

¿Alguna sugerencia?

David
fuente

Respuestas:

64

Realmente deberías usar los scripts de inicio Sys-V ubicados en /etc/init.d.

Comienzo:

sudo /etc/init.d/mysql start

Detener:

sudo /etc/init.d/mysql stop

Reiniciar / recargar configuraciones:

sudo /etc/init.d/mysql restart

Verificar estado de ejecución:

sudo /etc/init.d/mysql status
gerryk
fuente
1
Intenté eso y recibí el siguiente mensaje de error `En lugar de invocar scripts de inicio a través de /etc/init.d, use la utilidad service (8), por ejemplo, estado de mysql de servicio '
David
3
@David Esta es la única respuesta correcta. servicees solo un pequeño programa que busca el script init.d correcto para usted. A pesar de que le arroja el "mensaje de error", sudo /etc/init.d/mysql start/stoptodavía ha hecho su trabajo. Usar servicees solo la "nueva forma" de usar scripts de inicio. Para usar service, simplemente ejecute esto en la terminal: service mysql stopo comience.
BloodPhilia
@BloodPhilia, probé service mysql stopy me sale el siguiente mensaje: Rejected send message, 1 matched rules; type="method_call", sender=":1.72" (uid=1000 pid=17673 comm="stop mysql ") interface="com.ubuntu.Upstart0_6.Job" member="Stop" error name="(unset)" requested_reply=0 destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init")). ¿Algunas ideas?
David
2
@David ¿Intentaste usarlo con sudo? Al igual que sudo service mysql stop?
BloodPhilia
1
@BloodPhilia. Su sugerencia funcionó. Gracias por las aclaraciones
David
13

En las máquinas Ubuntu, puede reiniciar mysql usando ambos comandos:

 1. sudo /etc/init.d/mysql restart

 2. # service mysql restart
Gopinath
fuente
En Debian también. Pero el primer comando hizo que todos mis localhostmensajes no funcionaran. Tendrían que ser reemplazados por 127.0.0.1. El último no tenía ese problema.
MA-Maddin
3

Para cerrar mysql, ejecute:

mysqladmin -uuser -ppassword shutdown

donde usuario y contraseña son los de un usuario con el privilegio APAGADO adecuado

Para verificar que se haya apagado:

ps aux | grep mysql

Si aparece algún proceso (que no sea el comando 'grep'), no se ha cerrado.

DTest
fuente
Seguí tus instrucciones y obtuve una salida. He editado mi pregunta usando su procedimiento. ¿Puedo decirme si estoy en el camino correcto?
David
Creo que el apagado se detiene y luego inicia automáticamente mysql. ¿Hay un comando para detener permanentemente mysql?
David
@David el reinicio automático no es un comportamiento de apagado de mysqladmin. probablemente el comportamiento /etc/init.d/mysql de ubuntu? No estoy seguro. Creo que la respuesta de @ gerryk es la correcta para su sistema operativo.
DTest
0

Puede usar el comando kill -9 "PID" para hacer eso, el ID de proceso de MySQL (PID) puede ejecutar ps -a o los comandos principales. Luego puede comenzar de nuevo llamando al ./"proceso principal ".

Diogo
fuente
Hola, soy nuevo en la línea de comandos y MySQL. ¿Me puede mostrar exactamente lo que necesito escribir en la terminal?
David
66
kill -9 es un poco grosero, ya que no permite que un proceso se limpie después de sí mismo.
Gerryk
2
No recomiendo hacer esto. Dependiendo de lo que haga MySQL en el momento en que se detenga repentinamente, puede reiniciar en algunas bases de datos infelices.
Xenoactive
0

La utilidad systemctl disponible por defecto se utiliza para administrar los servicios en su caja de Linux. Se puede utilizar para iniciar, reiniciar y detener servicios. Hay otras opciones que puedes usar. sistema de pago

systemctl stop mysql
systemctl start mysql
Shekhar
fuente
Agregue algunos detalles sobre por qué esto debería ayudar. Se desaconsejan las respuestas no explicativas, lo que probablemente condujo a un voto negativo.
kdb