Как безопасно перезапустить mysqld, который был запущен с mysqld _?

Для этого можно использовать awkсо следующим вкладышем -, как показано ниже:

awk -F\< '/Name=/ {LGT=length($2);printf("\n%s,",substr($2,6,LGT))};
/Class=/ {LGT=length($2);printf(" %s,",substr($2,6,LGT))}; 
/School=/ {LGT=length($2);printf(" %s",substr($2,6,LGT))};
END {printf("\n") }' file.txt

Это решение будет печатать записи (, то есть строки в исходном file.txtфайле )в том порядке, в котором они появляются в file.txt. Я добавил его, потому что это (простой )пример того, как анализировать и манипулировать строками с помощью awk.

Как и в предыдущих ответах, файл file.txt содержит:

<text>Name= Garen</text>
<text>Class= 9C</text>
<text>School= US</text>
<text>Name= Lulu</text>
<text>Class= 4A</text>
<text>Name= Kata</text>
<text>Class= 10D</text>
<text>School= UK</text>

Выход::

Name= Garen, Class= 9C, School= US
Name= Lulu, Class= 4A
Name= Kata, Class= 10D, School= UK
0
15.12.2020, 03:18
1 ответ

Вы всегда можете убить процесс, используя kill, если вы знаете его идентификатор, или используя pkill, что соответствует команде (и может быть немного более опасным, так как может соответствовать неправильному процессу или более чем один ). я бы выбрал:

# pgrep -lf mysql

(измените mysqlна mariadb, если запущен последний ), затем проверьте вывод, чтобы получитьPID(первое поле в строке правильного процесса ), а затем уничтожьте его, используяkill

# kill -TERM <PID>

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

С другой стороны, я не уверен, что "хладнокровное" уничтожение сервера базы данных является хорошей идеей, поскольку это может оставить базы данных в странном состоянии. Обязательно используйте -TERM, чтобы дать ему благополучно умереть.

В первую очередь я бы попытался выяснить, что вызывает зависание, и проверить, действительно ли оно зависает. mysqld_safeне переходит в фоновый режим, поэтому вы не вернетесь к оболочке после ее запуска, а (, по крайней мере, в моем случае, )не реагирует на ^C, поэтому поведение вы шоу ожидается. Открытие другого терминала и запуск pgrepи kill, как указано выше, прекрасно убил сервер, как показано в его журнале :

.
2020-12-19 16:08:47 0 [Note] /usr/local/libexec/mariadbd (initiated by: unknown): Normal shutdown
2020-12-19 16:08:47 0 [Note] Event Scheduler: Purging the queue. 0 events
2020-12-19 16:08:47 0 [Note] InnoDB: FTS optimize thread exiting.
2020-12-19 16:08:47 0 [Note] InnoDB: Starting shutdown...
2020-12-19 16:08:47 0 [Note] InnoDB: Dumping buffer pool(s) to /var/mysql/ib_buffer_pool
2020-12-19 16:08:47 0 [Note] InnoDB: Buffer pool(s) dump completed at 201219 16:08:47
2020-12-19 16:08:47 0 [Note] InnoDB: Shutdown completed; log sequence number 126817447; transaction id 271335
2020-12-19 16:08:47 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1"
2020-12-19 16:08:47 0 [Note] /usr/local/libexec/mariadbd: Shutdown complete
0
18.03.2021, 22:42

Теги

Похожие вопросы