Comment redémarrer MySQL

32

J'utilise MySQL 5.1.54 et je l'ai installé sur Ubuntu via le terminal à l'aide de la commande

sudo apt-get install mysql-server

J'ai changé le my.cnffichier et je voudrais arrêter puis démarrer la base de données. J'ai essayé ce qui suit

sudo /usr/bin/mysqld_safe stop

Ma question est de savoir comment savoir que la base de données est arrêtée? Lorsque j'exécute la commande ci-dessus, suivie de

sudo mysql -uuser -ppassword

Je peux me reconnecter directement à la base de données. Cela ne devrait-il pas me dire que la base de données ne fonctionne pas?

Aucune suggestion? Merci.

EDIT: j'ai aussi essayé

mysqladmin -uuser -ppassword shutdown

et alors

ps aux | grep mysql

J'obtiens la sortie suivante

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

La sortie ci-dessus signifie-t-elle que MySQL a été arrêté? Si je cours, mysql -uuser -ppasswordje peux toujours me connecter à mysql.

Aucune suggestion?

David
la source

Réponses:

64

Vous devez vraiment utiliser les scripts d'initialisation Sys-V situés dans /etc/init.d.

Début:

sudo /etc/init.d/mysql start

Arrêtez:

sudo /etc/init.d/mysql stop

Redémarrez / rechargez les configurations:

sudo /etc/init.d/mysql restart

Vérifier l'état d'exécution:

sudo /etc/init.d/mysql status
gerryk
la source
1
J'ai essayé cela et j'obtiens le message d'erreur suivant `Plutôt que d'appeler des scripts d'initialisation via /etc/init.d, utilisez l'utilitaire service (8), par exemple le service mysql status '
David
3
@David C'est la seule bonne réponse. serviceest juste un petit programme qui recherche le bon script init.d pour vous. Même s'il vous envoie le "message d'erreur", il sudo /etc/init.d/mysql start/stopa quand même fait son boulot. L'utilisation servicen'est que la "nouvelle façon" d'utiliser les scripts de démarrage. Pour l'utiliser service, il suffit de l'exécuter sur le terminal: service mysql stopou de démarrer.
BloodPhilia
@BloodPhilia, j'ai essayé service mysql stopet je reçois le message suivant: 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")). Des idées?
David
2
@David Avez-vous essayé de l'utiliser avec sudo? Comme sudo service mysql stop?
BloodPhilia
1
@BloodPhilia. Votre suggestion a fonctionné. Merci pour les clarifications.
David
13

Sur les machines Ubuntu, vous pouvez redémarrer le mysql en utilisant les deux commandes:

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

 2. # service mysql restart
Gopinath
la source
Sur Debian également. Mais la première commande a fait que tous mes localhosts ne fonctionnaient pas. Ils devraient être remplacés par 127.0.0.1. Ce dernier n'avait pas ce problème.
MA-Maddin
3

Pour arrêter mysql, exécutez:

mysqladmin -uuser -ppassword shutdown

où utilisateur et mot de passe sont ceux d'un utilisateur disposant du privilège SHUTDOWN approprié

Pour vérifier qu'il a été arrêté:

ps aux | grep mysql

Si des processus (autres que la commande 'grep') apparaissent, cela n'a pas été arrêté.

DTest
la source
J'ai suivi vos instructions et j'obtiens une sortie. J'ai modifié ma question en utilisant votre procédure. Je peux me dire si je suis sur la bonne voie?
David
Je pense que l'arrêt s'arrête puis démarre automatiquement mysql. Existe-t-il une commande pour arrêter définitivement mysql?
David
@David le redémarrage automatique n'est pas un comportement d'arrêt de mysqladmin. probablement le comportement /etc/init.d/mysql d'ubuntu? Je ne suis pas sûr. Je pense que la réponse de @ gerryk est la bonne pour votre système d'exploitation.
DTest
0

Vous pouvez utiliser la commande kill -9 "PID" pour ce faire, l'ID de processus MySQL (PID) que vous pouvez obtenir en exécutant ps -a ou les commandes supérieures. Ensuite, vous pouvez le redémarrer en appelant ./"main process ".

Diogo
la source
Salut, je suis nouveau sur la ligne de commande et MySQL. Pouvez-vous me montrer exactement ce que je dois taper dans le terminal?
David
6
kill -9 est un peu grossier, car il ne laisse pas un processus se nettoyer après lui-même.
gerryk
2
Je ne recommande pas de faire ça. Selon ce que MySQL fait au moment où il s'arrête soudainement, vous pouvez redémarrer vers certaines bases de données mécontentes.
Xenoactive
0

l'utilitaire systemctl disponible par défaut est utilisé pour gérer les services dans votre box Linux. il peut être utilisé pour démarrer, redémarrer et arrêter des services. Il existe d'autres options que vous pouvez utiliser. checkout systemctl?

systemctl stop mysql
systemctl start mysql
Shekhar
la source
Veuillez ajouter quelques détails sur la raison pour laquelle cela devrait vous aider. Les réponses non explicatives sont découragées, ce qui a probablement conduit au vote négatif.
kdb