Wie starte / stoppe ich den MySQL-Server?


211

Ich habe versucht, in einigen Artikeln zu finden, wie man mysql-Server richtig startet und stoppt.

Ich habe diesen Link gefunden: So starten / stoppen Sie den MySql-Server unter Ubuntu 8.04 | Abhis Blogging-Welt

Ich habe diesen Befehl ausgeführt:

/etc/init.d/mysql start 

aber ich sehe diesen fehler

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

Nachdem ich diesen Befehl ausprobiert habe:

sudo /etc/init.d/mysql start

Ich habe mein Passwort eingegeben und wieder sehe ich den gleichen Fehler.

Nächster Befehl:

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

Ergebnisse in:

ERROR 1049 (42000) Unknown database 'start'.

Und wenn ich diesen Befehl ausführen:

sudo service mysql start

Der Erfolg von MySQL Server hat begonnen. Cool!

Also, was ist los mit den anderen Befehlen? Warum führen sie zu Fehlern?


3
Selbst mit sudo hat es bei mir nicht funktioniert, aber dann habe ich im Skript den folgenden Hinweis gefunden: Verwenden Sie den Dienst (8), anstatt Init-Skripte über /etc/init.d aufzurufen, und es war in Ordnung
Timofey

2
Tim ist richtig. Verwenden Sie sudo service mysql start .
Ed Manet

Im Allgemeinen können Sie sudo -l verwenden, um zu sehen, was Ihr spezifischer Benutzer auf Ihrem spezifischen System mit sudo machen darf. (Ihre Berechtigungen sind in / etc / sudoers konfiguriert.) Ich weiß jedoch nicht genau, ob dies in diesem speziellen Fall helfen würde. BEARBEITEN: Warten Sie, egal, der Fehler "Zugriff verweigert" scheint von MySQL oder etwas anderem zu kommen, nicht von sudo.
David Winiecki

Antworten:


230

Ihre ersten beiden Befehle wurden nicht als root ausgeführt, sodass das erwartete Verhalten vorliegt. Sie müssen root sein, um mysql zu stoppen / starten.

Jedoch:

sudo /etc/init.d/mysql start

sollte arbeiten. In der Tat ist es für mich:

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..

Ich habe Neustart verwendet, anstatt zu starten, da es bereits ausgeführt wurde, aber der Effekt ist der gleiche. Sind Sie sicher, dass Sie Ihr Passwort korrekt eingegeben haben? :) Hast du deine Sudo-Konfiguration überhaupt bearbeitet, was dazu führen würde, dass dies nicht mehr funktioniert?

Dieses..

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

Die Argumente sind falsch. Ein init.d-Skript benötigt nur startoder stopoder restart- nur ein Wort, das sagt, was zu tun ist. Sie können nicht mehrere Argumente angeben, wie Sie es versucht haben.

Auf jeden Fall ist die kurze Antwort die, die Sie tatsächlich zur Arbeit haben, die empfohlene. serviceersetzt im Laufe der Zeit alle init.d-Skripte, daher sollten Sie sich angewöhnen, diese zu verwenden service. Die Seite, die Sie verlinken, ist 3 Jahre alt und muss mit etwas Salz genommen werden :)


7
Versuchen Sie auch sudo service mysql start

2
start mysqlhat bei mir funktioniert (Ubuntu 12.04.4).
Tim

3
sudo /etc/init.d/mysql restarthat MySQL für mich neu gestartet
Edward

6
wie wäre es mit sudo systemctl start mysqlUbuntu 16.04 und höher?
Ankit Balyan

86

Es hilft auch zu überprüfen, ob "mysql" der richtige Dienstname ist. In meinem Fall war es nicht. Ich erhielt immer wieder folgende Antwort: mysql: Unbekannter Dienst beim Ausführen

service mysql status 

Dann überprüfte ich /etc/init.d und fand ein Skript namens mysqld, das den Prozessnamen auflistete: mysqld und prog = mysqld

Also tat ich es

service mysqld status
service mysqld stop
service mysqld start 

und sie alle haben gut funktioniert.


4
mysql: unrecognized service
Grün

7
Zumindest am 13.10 müssen Sie es mit root-Rechten ausführen. zB "sudo service mysql status".
Bryce

13
Für 14.10 musste ich "mysql" verwenden, nicht mysql d
redanimalwar 23.10.14

1
Wenn es ohne root-Rechte läuft, wird es sagen unknown job: mysql. ein bisschen verwirrend.
Blauhirn

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

30

Für Ubuntu 12.10 und höher:

MYSQL STARTEN:

sudo start mysql

MYSQL NEU STARTEN:

sudo restart mysql # The service must be running

STOP MYSQL:

sudo stop mysql # The service must be running

3
stop: Unknown job: mysql
Grün

@Green Ich habe es gerade ausprobiert (ein Jahr später) und es funktioniert immer noch. Das ist mein Ergebnis: mysql stop/waiting. Sie müssen wissen, dass Sie bereits laufen müssen mysql, um dies zu stoppen;)
Lucio

1
Held, du rettest mein Leben, dass mysqld so lange meinen Maschinenspeicher belegt hat. Ich habe alle Arten von Methoden ausprobiert, um es zu entfernen, aber alles schlug fehl, bis ich Ihre Antwort traf.
Zen

sudo: start: command not found
JCarlos

1
@JCarlos Doapt install upstart
Edward

9

Eigentlich habe ich einen seltsamen Fehler bekommen, als ich mysql-workbench auf meinem Ubuntu-Rechner installiert habe. Danach habe ich versucht, den Mysql-Dienst mit diesem Befehl zu starten:

service mysql start

Also bekam ich die Lösung, dass der MySQL-Server nicht installiert war, also installierte ich ihn und mein Problem wurde gelöst. Der Befehl zum Installieren von mysql-server lautet:

sudo apt-get install mysql-server

Starten Sie nach erfolgreicher Installation den MySQL-Server wie folgt:

service mysql start

4

Ich hatte das gleiche Problem mit Ubuntu64 und ich habe es behoben, indem ich einfach nicht systemctl verwendet habe, sondern dies:

sudo service mysql restart

Hoffentlich funktioniert dieser Befehl für Sie.


2

Dieser sollte für den manuell erstellten MySQL-Server funktionieren:

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

2

Nach der Installation von MySQL auf Ihrem System machen Sie folgendes:

$ service mysql status

Wenn der Service dies einfach macht:

$ Service MySQL starten

und um meinen Dienst zu beenden, dass:

$ Service MySQL zu stoppen


1
/etc/init.d/mysql startund service mysql startsind genau das gleiche.
Sturm

1

Ich war mit dem gleichen Problem konfrontiert und habe es deinstalliert und erneut installiert, indem ich die folgenden Befehle befolgt habe:

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

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

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


0

Ein kleines Skript für beide Fälle [Server läuft / Server läuft nicht]:

#!/bin/bash

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

0

Unter Ubuntu 18.04 ist der Socket in der Datei definiert

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

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

Das Verzeichnis war nicht vorhanden, daher habe ich es wie folgt manuell erstellt:

sudo mkdir -p /var/run/mysqld

Starten Sie mysql neu. Das hat es für meinen Fall hier gelöst.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.