Як перезапустити 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

Я можу ввійти прямо в базу даних. Чи не повинно мені сказати, що база даних не працює?

Будь-які пропозиції? Дякую.

EDIT: Я також намагався

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

Ви дійсно повинні використовувати скрипти init 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
Я спробував це, і я отримав таке повідомлення про помилку `Замість того, щоб викликати скрипти init через /etc/init.d, скористайтеся утилітою служби (8), наприклад, status mysql service '
Девід

3
@David Це єдина правильна відповідь. 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
@David Ви спробували використовувати його з судо? Як 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

4

Щоб вимкнути mysql, запустіть:

mysqladmin -uuser -ppassword shutdown

де користувач та пароль - це для користувачів із належним привілеєм SHUTDOWN

Щоб перевірити, чи не було вимкнено:

ps aux | grep mysql

Якщо з’являються будь-які процеси (крім команди «grep»), її не було вимкнено.


Я дотримувався ваших вказівок і отримую результат. Я редагував своє запитання, використовуючи вашу процедуру. Я можу сказати, чи я на правильному шляху?
Девід

Я думаю, що зупинка зупиняється, а потім автоматично запускає mysql. Чи є команда постійно припиняти mysql?
Девід

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

0

Ви можете використовувати команду kill -9 "PID" для цього, ідентифікатор процесу MySQL (PID), за допомогою якого ви можете запустити ps -a або верхні команди. Потім ви можете запустити його знову, зателефонувавши ./"main process ".


Привіт, я новачок у командному рядку та MySQL. Чи можете ви мені точно показати, що мені потрібно набрати в термінал?
Девід

6
kill -9 є трохи грубим, оскільки він не дозволяє процесу очищення після себе.
gerryk

2
Я не рекомендую робити це. Залежно від того, що робить MySQL у той момент, коли він раптово зупиняється, ви можете перезапустити деякі нещасні бази даних.
Ксеноактив

0

утиліта systemctl, доступна за замовчуванням, використовується для керування службами у вашому Linux-вікні. його можна використовувати для запуску, перезавантаження та зупинки служб. Є й інші варіанти, якими можна скористатися. каси systemctl?

systemctl stop mysql
systemctl start mysql

Будь ласка, додайте детальну інформацію про те, чому це повинно допомогти. Не пояснювальні відповіді відбиваються, що, ймовірно, призвело до скорочення.
kdb
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.