Как перезапустить MySQL


32

Я использую MySQL 5.1.54 и установил его в Ubuntu через терминал с помощью команды

sudo apt-get install mysql-server

Я изменил my.cnfфайл и хотел бы остановить, а затем запустить базу данных. Я пробовал следующее

sudo /usr/bin/mysqld_safe stop

У меня вопрос, как узнать, что база данных остановлена? Когда я запускаю приведенную выше команду, а затем

sudo mysql -uuser -ppassword

Я могу войти прямо в базу данных. Разве это не говорит мне, что база данных не работает?

Какие-либо предложения? Спасибо.

РЕДАКТИРОВАТЬ: я также пытался

mysqladmin -uuser -ppassword shutdown

а потом

ps aux | grep mysql

Я получаю следующий вывод

david    12093  0.0  0.0   6052  1276 pts/1    T    May10   0:00 nano /etc/mysql/my.cnf
root     12267  0.0  0.0   6396  1436 pts/1    T    May10   0:00 sudo nano /etc/mysql/my.cnf
root     12269  0.0  0.0   6052  1388 pts/1    T    May10   0:00 nano /etc/mysql/my.cnf
mysql    15371  0.3  0.1  55344  9088 ?        Ssl  10:53   0:00 /usr/sbin/mysqld
david    15512  0.0  0.0   5304   864 pts/1    R+   10:54   0:00 grep --color=auto mysql

Означает ли приведенный выше вывод, что MySQL был выключен? Если я бегу, mysql -uuser -ppasswordя все еще могу войти в MySQL.

Какие-либо предложения?

Ответы:


64

Вы действительно должны использовать сценарии инициализации Sys-V, расположенные в /etc/init.d.

Начало:

sudo /etc/init.d/mysql start

Стоп:

sudo /etc/init.d/mysql stop

Перезапустите / перезагрузите конфиги:

sudo /etc/init.d/mysql restart

Проверьте статус запуска:

sudo /etc/init.d/mysql status

1
Я попробовал это, и я получаю следующее сообщение об ошибке: «Вместо того, чтобы вызывать сценарии инициализации через /etc/init.d, используйте утилиту service (8), например, service mysql status»
David

3
@ Дэвид Это единственный правильный ответ. serviceэто просто небольшая программа, которая ищет правильный скрипт init.d для вас. Несмотря на то, что он выдает «сообщение об ошибке», sudo /etc/init.d/mysql start/stopон все же сделал свою работу. Использование service- это просто «новый способ» использования сценариев запуска. Чтобы использовать service, просто выполните это на терминале: service mysql stopили запустите.
BloodPhilia

@BloodPhilia, я попробовал , service mysql stopи я получаю следующее сообщение: Rejected send message, 1 matched rules; type="method_call", sender=":1.72" (uid=1000 pid=17673 comm="stop mysql ") interface="com.ubuntu.Upstart0_6.Job" member="Stop" error name="(unset)" requested_reply=0 destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init")). Любые идеи?
Дэвид

2
@ Дэвид Вы пытались использовать его с sudo? Как sudo service mysql stop?
BloodPhilia

1
@BloodPhilia. Ваше предложение сработало. Спасибо за разъяснения.
Дэвид

13

На машинах с Ubuntu вы можете перезапустить mysql, используя обе команды:

 1. sudo /etc/init.d/mysql restart

 2. # service mysql restart

На Debian также. Но первая команда заставила всех моих localhostне работать. Их нужно будет заменить на 127.0.0.1. У последнего не было этой проблемы.
MA-Maddin

3

Чтобы выключить MySQL, запустите:

mysqladmin -uuser -ppassword shutdown

где user и password для пользователя с соответствующей привилегией SHUTDOWN

Чтобы проверить, что он был выключен:

ps aux | grep mysql

Если какие-либо процессы (кроме команды 'grep') появляются, он не был остановлен.


Я следовал твоим инструкциям и получил вывод. Я отредактировал свой вопрос, используя вашу процедуру. Я могу сказать мне, если я на правильном пути?
Дэвид

Я думаю, что выключение останавливается, а затем автоматически запускается MySQL. Есть ли команда, чтобы окончательно остановить MySQL?
Дэвид

@ Дэвид автоматический перезапуск не является поведением отключения mysqladmin. вероятно, поведение /etc/init.d/mysql в Ubuntu? Я не уверен. Я думаю, что ответ @ gerryk правильный для вашей операционной системы.
DTest

0

Вы можете использовать команду kill -9 «PID», MySQL Process ID (PID), которую вы можете запустить с помощью команд ps -a или top. Затем вы можете запустить его снова, позвонив ./"main process ".


Привет, я новичок в командной строке и MySQL. Можете ли вы показать мне именно то, что мне нужно ввести в терминал?
Дэвид

6
kill -9 немного грубо, так как не позволяет процессу убирать за собой.
геррик

2
Я не рекомендую делать это. В зависимости от того, что MySQL делает в тот момент, когда он внезапно останавливается, вы можете перезапустить некоторые несчастные базы данных.
Xenoactive

0

Утилита systemctl, доступная по умолчанию, используется для управления сервисами в вашей Linux-системе. его можно использовать для запуска, перезапуска и остановки служб. Есть и другие варианты, которые вы можете использовать. Оформить заказ systemctl?

systemctl stop mysql
systemctl start mysql

Пожалуйста, добавьте некоторые детали о том, почему это должно помочь. Необъяснимые ответы не приветствуются, что, вероятно, привело к снижению.
КДБ
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.