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


211

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

J'ai trouvé ce lien: Comment démarrer / arrêter le serveur MySql sur Ubuntu 8.04 | Le monde des blogs d'Abhi

J'ai lancé 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 je vois encore la même erreur.

Prochaine commande:

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 succès du serveur MySQL a commencé. Cool!

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


3
En fait, même avec sudo, cela ne fonctionnait pas pour moi, mais j’ai trouvé dans le script l’indice suivant: Plutôt que d’invoquer des scripts init via /etc/init.d, utilisez le service (8) et c’était correct
Timofey

2
Tim a raison. Utilisez sudo service mysql start .
Ed Manet

En règle générale, vous pouvez utiliser sudo -l pour voir ce que votre utilisateur spécifique de votre système est autorisé à faire avec sudo. (Vos autorisations sont configurées dans / etc / sudoers.) Cependant, je ne sais pas vraiment si cela aiderait dans ce cas particulier. EDIT: Attendez, peu importe, l’erreur d'accès refusé semble provenir de MySQL ou de quelque chose du genre, pas de sudo.
David Winiecki

Réponses:


230

Vos deux premières commandes n'ont pas été exécutées en tant que root, il s'agit donc du comportement attendu. Vous devez être root pour arrêter / démarrer mysql.

Pourtant:

sudo /etc/init.d/mysql start

devrait marcher. En effet, pour moi:

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é redémarrer plutôt que démarrer, car il était déjà en cours d'exécution, mais l'effet est le même. Êtes-vous sûr d'avoir entré votre mot de passe correctement? :) Avez-vous édité votre configuration sudo pour que cela ne fonctionne plus?

Celui-là..

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

Les arguments sont faux. un script init.d ne prend que startou stopou restart- juste un mot lui disant quoi faire. Vous ne pouvez pas lui donner plusieurs arguments comme vous essayiez de le faire.

Quoi qu'il en soit, la réponse courte est celle que vous avez réellement utilisée, est la méthode recommandée. serviceremplace tous les scripts init.d au fil du temps, vous devriez donc prendre l’habitude de l’utiliser service. La page que vous associez a 3 ans, vous devez donc la prendre avec du sel :)


7
Essayez aussi sudo service mysql start

2
start mysqltravaillé pour moi (Ubuntu 12.04.4).
Tim

3
sudo /etc/init.d/mysql restarta relancé MySQL pour moi
Edward, le

6
que diriez-vous sudo systemctl start mysqlpour Ubuntu 16.04 et plus?
Ankit Balyan

86

Permet également de vérifier que "mysql" est le nom de service correct. Dans mon cas, ça ne l'était pas. J'ai continué à recevoir la réponse suivante: mysql: service non reconnu lors de l'exécution

service mysql status 

Ensuite, j'ai vérifié /etc/init.d et trouvé le script nommé mysqld qui a donné le nom du processus: mysqld et prog = mysqld

Alors j'ai fait

service mysqld status
service mysqld stop
service mysqld start 

et ils ont tous bien fonctionné.


4
mysql: unrecognized service
Vert le

7
Au moins sur 13.10, vous devrez l'exécuter avec les privilèges root. par exemple, "statut mysql sudo service".
Bryce

13
Pour 14h10 je devais utiliser "mysql" pas mysql d
redanimalwar

1
quand on tourne sans droits root, ça va dire unknown job: mysql. un peu déroutant.
phil294

1
Failed to start mysqld.service: Unit mysqld.service not found.
JCarlos

30

Pour Ubuntu 12.10 et versions ultérieures:

COMMENCER MYSQL:

sudo start mysql

RESTART MYSQL:

sudo restart mysql # The service must be running

STOP MYSQL:

sudo stop mysql # The service must be running

3
stop: Unknown job: mysql
Vert le

@ Green J'ai juste essayé ceci (un an plus tard) et cela fonctionne toujours. Ceci est mon résultat: mysql stop/waiting. Vous devez savoir que vous devez être déjà en cours mysqld' exécution pour arrêter cela;)
Lucio

1
Héros, tu me sauves la vie, parce que mysqld occupe ma mémoire depuis si longtemps. J'ai essayé toutes sortes de méthodes pour l'enlever, mais toutes ont échoué, jusqu'à ce que je réponde à votre réponse.
Zen

sudo: start: command not found
JCarlos

1
@JCarlos Doapt install upstart
Edward

9

En fait, j'ai eu une erreur étrange lorsque j'ai installé mysql-workbench sur ma machine Ubuntu. Après cela, j'ai essayé de démarrer le service mysql en utilisant cette commande:

service mysql start

J'ai donc compris que le serveur MySQL n'était pas installé, je l'ai donc installé et mon problème a été résolu. La commande pour installer mysql-server est:

sudo apt-get install mysql-server

Une fois l'installation réussie, démarrez le serveur MySQL en tant que:

service mysql start

4

J'ai eu le même problème avec Ubuntu64 et j'ai corrigé en n'utilisant tout simplement pas systemctl, mais plutôt ceci:

sudo service mysql restart

Espérons que cette commande fonctionnera pour vous.


2

Celui-ci devrait fonctionner pour le serveur mysql construit manuellement:

sudo /usr/local/mysql/bin/mysqld_safe --user=mysql

2

Après avoir installé MySQL sur votre système, procédez comme suit:

$ statut mysql du service

si le service ne fait que ceci:

$ service mysql start

et pour arrêter mon service que:

$ service mysql stop


1
/etc/init.d/mysql startet service mysql startsont exactement les mêmes.
tempête

1

J'ai eu le même problème et j'ai désinstallé et installé à nouveau en suivant les commandes ci-dessous:

1) sudo apt-get --purge supprimer mysql-server mysql-common mysql-client

2) sudo apt update && sudo apt dist-upgrade && sudo apt autoremove

3) sudo apt-get install -y mysql-server mysql-client


0

Un petit script pour couvrir les deux cas [serveur en cours d'exécution / serveur en cours d'exécution]:

#!/bin/bash

service mysql restart
if [ "$?" != "0" ]; then
  service mysql start
fi

0

Sur Ubuntu 18.04, le socket est défini dans le fichier

 /etc/mysql/mysql.conf.d/mysqld.cnf

 socket     = /var/run/mysqld/mysqld.sock

Le répertoire n'était pas présent, je l'ai donc créé manuellement comme ci-dessous:

sudo mkdir -p /var/run/mysqld

Redémarrez mysql. Cela l'a résolu pour mon cas ici.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.