Come posso avviare / arrestare il server mysql?


211

Ho provato a trovare in alcuni articoli che descrivono come avviare e arrestare correttamente il server mysql.

Ho trovato questo link: Come avviare / arrestare il server MySql su Ubuntu 8.04 | Abhi's Blogging World

Ho eseguito questo comando:

/etc/init.d/mysql start 

ma vedo questo errore

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

Dopo aver provato questo comando:

sudo /etc/init.d/mysql start

Ho inserito la mia password e di nuovo vedo lo stesso errore.

Comando successivo:

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

risulta in:

ERROR 1049 (42000) Unknown database 'start'.

E quando eseguo questo comando:

sudo service mysql start

Il successo del server MySQL è iniziato. Freddo!

Quindi, cosa c'è di sbagliato con gli altri comandi? Perché provocano errori?


3
In effetti, anche con sudo non ha funzionato per me, ma poi ho trovato nello script il seguente suggerimento: Invece di invocare gli script di init tramite /etc/init.d, usa il servizio (8) ed era ok
Timofey

2
Tim ha ragione. Usa il servizio sudo mysql start .
Ed Manet,

Generalmente puoi usare sudo -l per vedere cosa può fare il tuo specifico utente sul tuo specifico sistema con sudo. (Le tue autorizzazioni sono configurate in / etc / sudoers.) Tuttavia non so con certezza se sarebbe utile in questo caso particolare. EDIT: Aspetta, non importa, l'errore di accesso negato sembra provenire da MySQL o qualcosa del genere, non sudo.
David Winiecki,

Risposte:


230

I tuoi primi due comandi non sono stati eseguiti come root, quindi è un comportamento previsto. Devi essere root per interrompere / avviare mysql.

Però:

sudo /etc/init.d/mysql start

dovrebbe funzionare. Anzi, per me:

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

Ho usato il riavvio piuttosto che l'avvio, poiché era già in esecuzione, ma l'effetto è lo stesso. Sei sicuro di aver inserito la password correttamente? :) Hai modificato la tua configurazione sudo per impedire che funzioni?

Questo..

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

Gli argomenti sono sbagliati. uno script init.d richiede solo starto stopo restart- solo una parola che dice cosa fare. Non puoi dargli più argomenti come stavi cercando di fare.

Ad ogni modo, la risposta breve è quella in cui sei effettivamente riuscito a lavorare, è il modo raccomandato. servicesta sostituendo tutti gli script init.d nel tempo, quindi dovresti prendere l'abitudine di usarlo service. La pagina che colleghi ha 3 anni, quindi deve essere presa con un po 'di sale :)


7
Prova anche sudo service mysql start

2
start mysqlha funzionato per me (Ubuntu 12.04.4).
Tim

3
sudo /etc/init.d/mysql restartriavviato MySQL per me
Edward

6
che ne dici sudo systemctl start mysqldi Ubuntu 16.04 e versioni successive?
Ankit Balyan,

86

Aiuta anche a ricontrollare che "mysql" è il nome del servizio corretto. Nel mio caso non lo era. Continuavo a ricevere la seguente risposta: mysql: servizio non riconosciuto durante l'esecuzione

service mysql status 

Quindi ho controllato /etc/init.d e ho trovato lo script chiamato mysqld che elencava il nome del processo: mysqld e prog = mysqld

Quindi l'ho fatto

service mysqld status
service mysqld stop
service mysqld start 

e tutti hanno funzionato bene.


4
mysql: unrecognized service
Verde

7
Almeno il 13.10, dovrai eseguirlo con i privilegi di root. ad es. "sudo service mysql status".
Bryce

13
Per il 14.10 avevo bisogno di usare "mysql" non mysql d
redanimalwar il

1
quando si esegue senza diritti di root, dirà unknown job: mysql. un po 'confuso.
phil294

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

30

Per Ubuntu 12.10 e versioni successive:

INIZIA MYSQL:

sudo start mysql

RIAVVIA MYSQL:

sudo restart mysql # The service must be running

STOP MYSQL:

sudo stop mysql # The service must be running

3
stop: Unknown job: mysql
Verde

@Verde L'ho appena provato (un anno dopo) e funziona ancora. Questo è il mio risultato: mysql stop/waiting. Devi sapere che devi già correre mysqlper fermarlo;)
Lucio

1
Eroe, mi hai salvato la vita, quel mysqld è stato occupato la mia memoria della macchina per così tanto tempo. Ho provato tutti i tipi di metodi per rimuoverlo, ma tutti hanno fallito, fino a quando ho incontrato la tua risposta.
Zen,

sudo: start: command not found
JCarlos,

1
@JCarlos Doapt install upstart
Edward,

9

In realtà, ho avuto uno strano errore, quando ho installato mysql-workbench sulla mia macchina Ubuntu. Successivamente ho provato ad avviare il servizio mysql usando questo comando:

service mysql start

Quindi ho ottenuto la soluzione che il server MySQL non era installato, quindi l'ho installato e il mio problema è stato risolto. Il comando per installare mysql-server è:

sudo apt-get install mysql-server

Al termine dell'installazione, avviare il server MySQL come:

service mysql start

4

Ho avuto lo stesso problema con Ubuntu64 e ho risolto semplicemente non usando systemctl ma invece questo:

sudo service mysql restart

speriamo che questo comando funzioni per te.


2

Questo dovrebbe funzionare per il server mysql creato manualmente:

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

2

dopo aver installato MySQL sul tuo sistema basta farlo:

$ service mysql status

se il servizio non funziona in questo modo:

$ service mysql start

e per aver interrotto il mio servizio che:

$ service mysql stop


1
/etc/init.d/mysql starte service mysql startsono esattamente gli stessi.
tempesta il

1

Sono stato colpito dallo stesso problema e ho disinstallato e reinstallato seguendo i comandi seguenti:

1) sudo apt-get --purge rimuove 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 piccolo script per coprire entrambi i casi [server in esecuzione / server in esecuzione]:

#!/bin/bash

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

0

Su ubuntu 18.04 il socket è definito nel file

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

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

La directory non era presente, quindi l'ho creata manualmente come di seguito:

sudo mkdir -p /var/run/mysqld

Riavvia mysql. Questo ha risolto il mio caso qui.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.