Comment démarrer/arrêter le serveur mysql ?

J'ai essayé de trouver dans certains articles décrivant comment démarrer &amp ; arrêter correctement le serveur mysql.

J'ai trouvé ce lien : [Comment démarrer/arrêter le serveur MySql sur Ubuntu 8.04 | Abhi's Blogging World][1]

J'ai exécuté cette commande :

/etc/init.d/mysql start 

mais je vois cette erreur

ERROR 1045 (28000) Access denied for user....

Après avoir essayé cette commande :

sudo /etc/init.d/mysql start

J'ai entré mon mot de passe, et à nouveau je vois la même erreur.

Commande suivante :

sudo /etc/init.d/mysql - root -p start

résulte en :

ERROR 1049 (42000) Unknown database 'start'.

Et quand je lance cette commande :

sudo service mysql start

Le serveur MySQL a démarré avec succès. Cool !

Alors, qu'est-ce qui ne va pas avec les autres commandes ? Pourquoi produisent-elles des erreurs ?

[1] : http://abbysays.wordpress.com/2008/05/20/how-to-startstop-mysql-server-on-ubuntu-804/

Solution

Vos deux premières commandes n&#8217ont pas été exécutées en tant que root, c&#8217est donc un comportement attendu. Vous devez être root pour arrêter/démarrer mysql.

Cependant :

sudo /etc/init.d/mysql start

devrait fonctionner. En effet, pour moi, c'est le cas :

kojan:~> sudo /etc/init.d/mysql restart
[sudo] password for chris: 
Stopping MySQL database server: mysqld.
Starting MySQL database server: mysqld.
Checking for corrupt, not cleanly closed and upgrade needing tables..

J'ai utilisé restart plutôt que start, puisqu'il était déjà en cours d'exécution, mais l'effet est le même. Etes-vous sûr d'avoir entré votre mot de passe correctement ? :) Avez-vous modifié votre configuration sudo qui pourrait empêcher le fonctionnement ?

Celui-là...

sudo /etc/init.d/mysql - root -p start

Les arguments sont faux. Un script init.d ne prend que start ou stop ou restart - juste un mot lui indiquant quoi faire. Vous ne pouvez pas lui donner plusieurs arguments comme vous avez essayé de le faire.

De toute façon, la réponse courte est celle que vous avez réussi à faire fonctionner, c'est la méthode recommandée. service remplace tous les scripts init.d avec le temps, donc vous devriez prendre l'habitude d'utiliser service. La page dont vous donnez le lien a 3 ans et doit donc être prise avec un peu de sel :)

Commentaires (4)

Il est également utile de vérifier que "mysql" est le nom de service correct. Dans mon cas, ce n&#8217était pas le cas. Je n'ai cessé d'obtenir la réponse suivante : mysql : service non reconnu lors de l'exécution.

service mysql status 

J'ai ensuite vérifié /etc/init.d et j'ai trouvé un script nommé mysqld qui indiquait le nom du processus : mysqld et prog=mysqld.

J'ai donc fait

service mysqld status
service mysqld stop
service mysqld start 

et ils ont tous bien fonctionné.

Commentaires (6)

Pour Ubuntu 12.10 et plus :

START MYSQL:

sudo start mysql

RESTART MYSQL:

sudo restart mysql # The service must be running

STOP MYSQL:

sudo stop mysql # The service must be running
Commentaires (5)