Как мне запустить / остановить сервер MySQL?

211

Я попытался найти в некоторых статьях, описывающих, как правильно запускать и останавливать сервер MySQL.

Я нашел эту ссылку: Как запустить / остановить сервер MySql в Ubuntu 8.04 | Мир блогов Абхи

Я выполнил эту команду:

/etc/init.d/mysql start 

но я вижу эту ошибку

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

После того, как я попробовал эту команду:

sudo /etc/init.d/mysql start

Я ввел свой пароль, и снова я вижу ту же ошибку.

Следующая команда:

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

результаты в:

ERROR 1049 (42000) Unknown database 'start'.

И когда я запускаю эту команду:

sudo service mysql start

Успех сервера MySQL начался. Здорово!

Итак, что не так с другими командами? Почему они приводят к ошибке?

user471011
источник
3
На самом деле, даже с sudo это не сработало для меня, но потом я обнаружил в сценарии следующую подсказку: вместо того, чтобы вызывать сценарии инициализации через /etc/init.d, используйте сервис (8), и это было нормально
Тимофей
2
Тим прав. Воспользуйтесь sudo service mysql start .
Эд Мане
Как правило, вы можете использовать sudo -l, чтобы увидеть, что вашему конкретному пользователю в вашей конкретной системе разрешено делать с sudo. (Ваши разрешения настраиваются в / etc / sudoers.) Однако я не знаю точно, поможет ли это в данном конкретном случае. РЕДАКТИРОВАТЬ: Подождите, неважно, ошибка отказа в доступе выглядит так, как будто она исходит от MySQL или чего-то другого, а не sudo.
Дэвид Винецкий

Ответы:

230

Ваши первые две команды не были запущены от имени пользователя root, поэтому это ожидаемое поведение. Вы должны быть root, чтобы остановить / запустить mysql.

Тем не мение:

sudo /etc/init.d/mysql start

должно сработать. Это действительно так, для меня:

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

Я использовал перезагрузку, а не запуск, так как он уже работал, но эффект тот же. Вы уверены, что правильно ввели пароль? :) Вы редактировали свой конфиг sudo вообще, что бы это прекратило работать?

Вот этот..

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

Аргументы неверны. Сценарий init.d принимает только startили stopили restart- только одно слово, говорящее ему, что делать. Вы не можете дать ему несколько аргументов, как вы пытались это сделать.

В любом случае, краткий ответ - тот, который вы действительно получили на работе, это рекомендуемый способ. serviceзаменяет все сценарии init.d с течением времени, так что вы должны привыкнуть к использованию service. Странице, на которую вы ссылаетесь, 3 года, поэтому ее нужно взять с солью :)

цезий
источник
7
Также попробуйте sudo service mysql start
2
start mysqlработал для меня (Ubuntu 12.04.4).
Тим
3
sudo /etc/init.d/mysql restartперезапустил MySQL для меня
Эдвард
6
как насчет sudo systemctl start mysqlUbuntu 16.04 и выше?
Анкит Балян
86

Также помогает дважды проверить, что «mysql» является правильным именем сервиса. В моем случае это не так. Я продолжал получать следующий ответ: mysql: нераспознанный сервис при запуске

service mysql status 

Затем я проверил /etc/init.d и нашел скрипт с именем mysqld, в котором указаны имена процессов: mysqld и prog = mysqld

Итак, я сделал

service mysqld status
service mysqld stop
service mysqld start 

и все они работали нормально.

user140589
источник
4
mysql: unrecognized service
Зеленый
7
По крайней мере, 13.10 вам нужно будет запустить его с привилегиями root. например, "sudo service mysql status".
Брайс
13
Для 14.10 мне нужно было использовать «mysql», а не mysql d
redanimalwar
1
при запуске без рут прав скажет unknown job: mysql. немного сбивает с толку.
phil294
1
Failed to start mysqld.service: Unit mysqld.service not found.
JCarlos
30

Для Ubuntu 12.10 и более поздних версий:

НАЧАТЬ MYSQL:

sudo start mysql

RESTART MYSQL:

sudo restart mysql # The service must be running

STOP MYSQL:

sudo stop mysql # The service must be running
Lucio
источник
3
stop: Unknown job: mysql
Зеленый
@ Зеленый Я только что попробовал это (один год спустя), и это все еще работает. Это мой результат mysql stop/waiting. Вы должны знать, что вы уже должны бежать, mysqlчтобы остановить это;)
Lucio
1
Герой, ты спас мне жизнь, этот mysqld так долго занимал мою машинную память. Я перепробовал все виды методов, чтобы удалить его, но все не удалось, пока я не встретил ваш ответ.
Дзен
sudo: start: command not found
JCarlos
1
@JCarlos Doapt install upstart
Эдвард
9

На самом деле, я получил странную ошибку, когда я установил mysql-workbench на мою машину с Ubuntu. После этого я попытался запустить службу mysql с помощью этой команды:

service mysql start

Таким образом, я получил решение, что сервер MySQL не был установлен, поэтому я установил его, и моя проблема была решена. Команда для установки mysql-сервера:

sudo apt-get install mysql-server

После успешной установки запустите сервер MySQL как:

service mysql start
Akash5288
источник
4

У меня была та же проблема с Ubuntu64, и я исправил ее, просто не используя systemctl, а вместо этого:

sudo service mysql restart

Надеюсь, эта команда будет работать для вас.

Фейсал Юлайдан
источник
2

Этот должен работать для сервера MySQL, созданного вручную:

sudo /usr/local/mysql/bin/mysqld_safe --user=mysql
Арам Пароникян
источник
2

после установки MySQL в вашей системе просто сделайте это:

$ service mysql status

если сервис не работает, это:

$ service mysql start

и для остановки моего сервиса, который:

$ service mysql stop

Маночер Расули
источник
1
/etc/init.d/mysql startи service mysql startточно так же.
шторм
1

У меня возникла такая же проблема, и я снова удалил и установил, выполнив следующие команды:

1) sudo apt-get --purge удалить MySQL-сервер MySQL-общий MySQL-клиент

2) обновление sudo apt && sudo apt dist-upgrade && sudo apt autoremove

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

Narmatha
источник
0

Небольшой скрипт для покрытия обоих случаев [сервер работает / сервер не работает]:

#!/bin/bash

service mysql restart
if [ "$?" != "0" ]; then
  service mysql start
fi
ReverseEMF
источник
0

На Ubuntu 18.04 сокет определяется в файле

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

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

Каталога не было, поэтому я создал его вручную, как показано ниже:

sudo mkdir -p /var/run/mysqld

Перезапустите MySQL. Это решило это для моего случая здесь.

Ноэль
источник