Jak uruchomić / zatrzymać serwer MySQL?

211

Próbowałem znaleźć w niektórych artykułach opisujących, jak poprawnie uruchomić i zatrzymać serwer mysql.

Znalazłem ten link: Jak uruchomić / zatrzymać serwer MySql na Ubuntu 8.04 | Świat blogów Abhi

Uruchomiłem to polecenie:

/etc/init.d/mysql start 

ale widzę ten błąd

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

Po wypróbowaniu tego polecenia:

sudo /etc/init.d/mysql start

Podałem hasło i ponownie widzę ten sam błąd.

Następne polecenie:

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

prowadzi do:

ERROR 1049 (42000) Unknown database 'start'.

A kiedy uruchomię to polecenie:

sudo service mysql start

Sukces serwera MySQL rozpoczął się. Chłodny!

Co jest nie tak z innymi poleceniami? Dlaczego powodują błędy?

użytkownik471011
źródło
3
W rzeczywistości, nawet w przypadku sudo, nie działało to dla mnie, ale potem znalazłem w skrypcie następującą wskazówkę: Zamiast wywoływać skrypty init za pomocą /etc/init.d, użyj usługi (8) i było ok
Timofey
2
Tim ma rację. Użyj usługi sudo mysql start .
Ed Manet,
Zasadniczo możesz użyć sudo -l, aby zobaczyć, co twój konkretny użytkownik w twoim systemie może robić z sudo. (Twoje uprawnienia są skonfigurowane w / etc / sudoers.) Jednak nie wiem na pewno, czy to pomogłoby w tym konkretnym przypadku. EDYCJA: Zaczekaj, nieważne, błąd odmowy dostępu wygląda tak, jakby pochodził z MySQL lub czegoś innego, nie sudo.
David Winiecki

Odpowiedzi:

230

Pierwsze dwa polecenia nie były uruchamiane jako root, więc jest to oczekiwane zachowanie. Musisz być rootem, aby zatrzymać / uruchomić mysql.

Jednak:

sudo /etc/init.d/mysql start

powinno działać. Rzeczywiście tak jest dla mnie:

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

Użyłem restartu zamiast startu, ponieważ już działał, ale efekt jest taki sam. Czy na pewno poprawnie wpisałeś hasło? :) Czy w ogóle edytowałeś konfigurację sudo, która przestałaby działać?

Ten..

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

Argumenty są błędne. skrypt init.d zajmuje tylko startalbo stopalbo restart- tylko jedno słowo mówi jej, co zrobić. Nie możesz podać wielu argumentów, tak jak próbowałeś to zrobić.

W każdym razie zalecana jest krótka odpowiedź, którą naprawdę masz do pracy. servicezastępuje z czasem wszystkie skrypty init.d, więc powinieneś nabrać zwyczaju używania service. Strona, którą linkujesz, ma 3 lata, więc musisz wziąć trochę soli :)

Cez
źródło
7
Spróbuj także usługi sudo mysql start
2
start mysqlpracował dla mnie (Ubuntu 12.04.4).
Tim
3
sudo /etc/init.d/mysql restartzrestartowałem MySQL dla mnie
Edward
6
co powiesz sudo systemctl start mysqlna Ubuntu 16.04 i nowsze?
Ankit Balyan
86

Pomaga także dwukrotnie sprawdzić, czy „mysql” jest prawidłową nazwą usługi. W moim przypadku tak nie było. Otrzymałem następującą odpowiedź: mysql: nierozpoznana usługa podczas działania

service mysql status 

Następnie sprawdziłem /etc/init.d i znalazłem skrypt o nazwie mysqld, w którym wymieniono nazwę procesu: mysqld i prog = mysqld

Więc to zrobiłem

service mysqld status
service mysqld stop
service mysqld start 

i wszystko działało dobrze.

użytkownik140589
źródło
4
mysql: unrecognized service
Zielony
7
Przynajmniej 13.10 musisz uruchomić go z uprawnieniami roota. np. „status mysql usługi sudo”.
Bryce,
13
Do 14.10 musiałem użyć „mysql”, a nie mysql d
redanimalwar
1
gdy działa bez uprawnień roota, powie unknown job: mysql. trochę mylące.
Blauhirn,
Failed to start mysqld.service: Unit mysqld.service not found.
JCarlos,
30

W systemie Ubuntu 12.10 i nowszych:

START MYSQL:

sudo start mysql

PONOWNIE URUCHOM MYSQL:

sudo restart mysql # The service must be running

STOP MYSQL:

sudo stop mysql # The service must be running
Lucio
źródło
3
stop: Unknown job: mysql
Zielony
@Green Właśnie tego spróbowałem (rok później) i nadal działa. To jest mój wynik: mysql stop/waiting. Musisz wiedzieć, że musisz już biegać, mysqlaby to zatrzymać;)
Lucio,
1
Bohaterze, ratujesz mi życie, że mysqld tak długo zajmuje moją pamięć maszyny. Próbowałem wszystkich metod, aby go usunąć, ale wszystkie zawiodły, dopóki nie spotkałem się z odpowiedzią.
Zen.
sudo: start: command not found
JCarlos,
1
@JCarlos Doapt install upstart
Edward
9

W rzeczywistości dostałem dziwny błąd, gdy zainstalowałem mysql-workbench na mojej maszynie Ubuntu. Następnie próbowałem uruchomić usługę mysql za pomocą tego polecenia:

service mysql start

Dostałem więc rozwiązanie, że serwer MySQL nie został zainstalowany, więc zainstalowałem go i mój problem został rozwiązany. Polecenie instalacji serwera mysql to:

sudo apt-get install mysql-server

Po udanej instalacji uruchom serwer MySQL jako:

service mysql start
Akash5288
źródło
4

Miałem ten sam problem z Ubuntu64 i naprawiłem go po prostu nie używając systemctl, ale zamiast tego:

sudo service mysql restart

mam nadzieję, że to polecenie zadziała dla ciebie.

Faisal Julaidan
źródło
2

Ten powinien działać dla ręcznie zbudowanego serwera mysql:

sudo /usr/local/mysql/bin/mysqld_safe --user=mysql
Aram Paronikyan
źródło
2

po zainstalowaniu MySQL w twoim systemie po prostu zrób to:

status mysql usługi

jeśli serwis nie działa, to:

Uruchom usługę mysql $ service

i za zatrzymanie mojej usługi, która:

$ service mysql stop

Manochehr Rasouli
źródło
1
/etc/init.d/mysql starti service mysql startsą dokładnie takie same.
burza
1

Zostałem dotknięty tym samym problemem, odinstalowałem i ponownie zainstalowałem, wykonując poniższe polecenia:

1) sudo apt-get --purge usuń mysql-server mysql-common mysql-client

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

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

Narmatha
źródło
0

Mały skrypt na oba przypadki [serwer działa / serwer nie działa]:

#!/bin/bash

service mysql restart
if [ "$?" != "0" ]; then
  service mysql start
fi
ReverseEMF
źródło
0

W Ubuntu 18.04 gniazdo jest zdefiniowane w pliku

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

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

Katalog nie był obecny, więc utworzyłem go ręcznie, jak poniżej:

sudo mkdir -p /var/run/mysqld

Uruchom ponownie mysql. To rozwiązało tutaj moją sprawę.

kolęda
źródło