Не удалось перезапустить MySQL на CentOS 7 после сброса пароля пользователя root. Centos перезапуск mysql


Перезапуск MySQL

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

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

Содержание статьи:

Перезапуск MySQL или MariaDB

В большинстве современных дистрибутивов, а особенно тех, что используются для работы серверов, для управления службами применяют Systemd. Именно с её помощью мы будем перезапускать движок баз данных. Ещё один момент, с которым нужно определиться, - это название юнит-файла MySQL. В зависимости от версии и дистрибутива оно может отличаться:

  • mysql-server;
  • mariadb-server;
  • mysql;
  • mariadb;
  • mariadbd
  • mysqld;

Вы можете попробовать использовать эти варианты, чтобы найти тот, что используется в вашей системе; последние версии Ubuntu понимают несколько имен MySQL. Таким образом, для MariaDB и выше перезапуск MySQL Сentos и Ubuntu не отличается. Просто попробуйте узнать состояние сервиса, если вы выбрали правильное название, то увидите что-то вроде этого:

А если нет, то:

Выполнить частичную перезагрузку только с обновлением конфигурации, так как это делалось в Apache и Nginx вы не сможете. Здесь необходимо полностью перезагружать сервис:

sudo systemctl restart mysql

В некоторых случаях необходимо полностью остановить работающий сервис, а потом запустить его заново. Для этого используем команду stop, затем start:

sudo systemctl stop mysqlsudo systemctl start mysql

Автоматический перезапуск MySQL

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

В systemd есть возможность, которая позволяет делать рестарт MySQL сразу же после того, как он неожиданно завершился. Для этого необходимо добавить такую строчку в конфигурацию юнит-файла  MySQL:

Restart=always

Но обратите внимание, что редактировать файлы юнитов в папке /usr нельзя, потому что во время обновления они могут быть перезаписаны, можно только в /etc, и желательно создавать отдельный файл. Можно поступить проще: используйте команду systemctl edit:

sudo systemctl edit mariadb

[Service]Restart=always

Сохраните изменения. Эти строки будут записаны в виде отдельного файла, который автоматически подключается к основному.

Выводы

В этой статье мы рассмотрели, как перезапустить MySQL для обновления конфигурации, а также как настроить автоматический перезапуск службы после возникновения ошибок. Если у вас остались вопросы, спрашивайте в комментариях!

Оцените статью:

Загрузка...

losst.ru

mysql - Не удалось перезапустить MySQL на CentOS 7 после сброса пароля пользователя root

Я сбросил пароль пользователя root root MySQL, выполнив следующие шаги

  1. Остановить MySQL

# systemctl stop mysqld

  1. Начать безопасный режим

# mysqld_safe --skip-grant-tables &

  1. Записан

# mysql -u root

  1. Сброс пароля

use mysql;

update user set password=PASSWORD("newpassword") WHERE user='root';

flush privileges;

quit;

  1. Остановить безопасный режим MySQL

# systemctl stop mysqld

  1. Запустить MySQL

# systemctl start mysqld

# systemctl restart mysqld

Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details. [root@li1456-180 ~]# systemctl status mysqld.service ● mysqld.service - MySQL Community Server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled) Active: failed (Result: start-limit) since Tue 2016-04-26 07:23:19 UTC; 10s ago Process: 13293 ExecStartPost=/usr/bin/mysql-systemd-start post (code=exited, status=0/SUCCESS) Process: 13292 ExecStart=/usr/bin/mysqld_safe (code=exited, status=1/FAILURE) Process: 13280 ExecStartPre=/usr/bin/mysql-systemd-start pre (code=exited, status=0/SUCCESS) Main PID: 13292 (code=exited, status=1/FAILURE) Apr 26 07:23:18 li1456-180.members.linode.com systemd[1]: Failed to start MySQL Community Server. Apr 26 07:23:18 li1456-180.members.linode.com systemd[1]: Unit mysqld.service entered failed state. Apr 26 07:23:18 li1456-180.members.linode.com systemd[1]: mysqld.service failed. Apr 26 07:23:19 li1456-180.members.linode.com systemd[1]: mysqld.service holdoff time over, scheduling restart. Apr 26 07:23:19 li1456-180.members.linode.com systemd[1]: start request repeated too quickly for mysqld.service Apr 26 07:23:19 li1456-180.members.linode.com systemd[1]: Failed to start MySQL Community Server. Apr 26 07:23:19 li1456-180.members.linode.com systemd[1]: Unit mysqld.service entered failed state. Apr 26 07:23:19 li1456-180.members.linode.com systemd[1]: mysqld.service failed.

Я что-то упускаю?

источник поделиться

qaru.site

mysql - Изящная перезагрузка в CentOS из командной строки (беспокоится о повреждении базы данных)

Обе команды будут вызывать требуемые уровни запуска при выключении и/или перезагрузке в любом случае.

shutdown -r и reboot - это то же самое, что вы просто назовете их "как есть" без дополнительных параметров.

shutdown -r now = reboot after shutdown. reboot = shutdown then reboot

Выдержка из справки об использовании;

[root@test ~]# reboot --help usage: reboot [-n] [-w] [-d] [-f] [-h] [-i] -n: don't sync before halting the system -f: force halt/reboot, don't call shutdown.

Обратите внимание, что если вы вызываете shutdown -f это приведет к остановке/перезагрузке, а не к выходу из системы, а также -n - это не то, что вы хотите. Это плохо, так как это не остановит службы из-за скриптов init, и вы можете потерять данные и/или привести к повреждению в вашем случае.

[root@test~]# shutdown --help Usage: shutdown [-akrhHPfnc] [-t secs] time [warning message] -r: reboot after shutdown.

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

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

'/etc/init.d/mysql stop' '/etc/init.d/mariadb stop'

После этого вы получите подтверждение, что услуги будут остановлены. Затем вы можете выполнить команду reboot или shutdown -r now.

При запуске он должен перезапустить любые службы (например, ваши Db), если они установлены правильно. Вы можете проверить это, выполнив следующую команду chkconfig --list затем просмотрите список для интересующих вас вещей, и вы должны ожидать, что они начнут "запускать" на уровне запуска 3 и "остановить" на уровне 6-го уровня.

например

chkconfig --list mysqld 0:off 1:off 2:off 3:on 4:off 5:off 6:off

qaru.site

Перезапуск MySQL репликации | linux-notes.org

В это статье «Перезапуск MySQL репликации» пойдет реч о том как можно перезапустить MySQL с репликацией и так же я расскажу как можно пересинхронизировать все данные между серверами.

Cбросить (Re-Sync) MySQL репликации (Master-Slave).

Иногда, MySQL репликации создают проблемы и slave не может синхронизировать данные от мастера.

Внимание: После того, как воспользуетесь данной статьей, все ваши bin-log файлы будут удалены, поэтому если вы хотите, вы можете сделать резервную копию этих всех файлов.

На Slave сервере:

Сначала нам нужно остановить lave на slave сервере. Подключитесь на сервер MySQL и выполнить следующую команду:

mysql> STOP SLAVE;

На Master сервере:

После остановки slave, перейдите к master серверу. На нем необходимо сбросить master состояния, используя следующую команду:

mysql> RESET MASTER; mysql> FLUSH TABLES WITH READ LOCK;

Больше о ЛОКАХ: http://dev.mysql.com/doc/refman/5.0/en/lock-tables.html

Создаем дамп базы данных:

# mysqldump -u root -p your_data_base > /home/captain/mysqldump-your_data_base.sql

После того как создали резервную копию БД, разблокируйтеь таблицы на master сервере:

mysql> UNLOCK TABLES;

На Slave сервере:

Восстанавливаем резервные копи баз данных на slave сервере, используя следующую команду:

# mysql -u root -p your_data_base < /home/captain/mysqldump-your_data_base.sql

Входим в MySQL и выполнить следующие команды для сброса slave состояний:

mysql> RESET SLAVE; mysql> CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=1;

После сброса состояний на slave сервере, запускаем slave репликацию:

mysql> START SLAVE;

Теперь ваша репликация была повторно синхронизирована. Можно проверить состояние с помощью следующей команды:

mysql> SHOW SLAVE STATUS\G

Команда для восстановления репликации в одну строку:

# (echo "STOP SLAVE;" && mysqldump --single-transaction --master-data -A && echo "START SLAVE;") | ssh -C YOUR_SSH_USER@YOUR_SERVER_or_IP sudo mysql
  • YOUR_SSH_USER- Пользователь к удаленному серверу ( по SSH).
  • YOUR_SERVER_or_IP- ИП адрес удаленного сервера ( по SSH).

Полезные команды

На мастере, вы можете проверить состояние подключенных slave с помощью  команды «SHOW PROCESSLIST» и посмотреть список запущенных процессов. Slave соединения имеют Binlog дамп в поле «Command»:

mysql> SHOW PROCESSLIST \G;

Для slaves, которые были запущены с опцией «—report-host» и подключенных к master серверу, команда «SHOW SLAVE HOSTS» на master-е покажет основную информацию о слейвах:

mysql> SHOW SLAVE HOSTS;

Cбросить (Re-Sync) MySQL репликации (Master-Master).

Пока не было нужды)

А на этом у меня все, тема «Перезапуск MySQL репликации» завершена.

linux-notes.org

Использование Monit для мониторинга + автоматический перезапуск службы MySQL

Monit может использоваться для мониторинга ваших услуг на вашем VPS или выделенном сервере. Вы можете использовать Monit, чтобы убедиться, что MySQL (MariaDB, Percona и т.д.) всегда работают в случае сбоя из-за брут-форс атак ботов или у когда заканчиваются ресурсы.

Monit проверит процесс MySQL, посмотрев на сокет unix, который он прослушивает. Если сокет не может быть обнаружен, Monit перезапустит службу MySQL. Таким образом, вы гарантируете, что ваш веб-сайт, возможно, который работает на WordPress, всегда запускает необходимые процессы.

Если вам нужно установить Monit на Ubuntu или Debian, то следуйте этому руководству.

Использование Monit для мониторинга + автоматический перезапуск службы MySQL

Monit нужна информация, чтобы проверить, работает ли MySQL.

Мы будем использовать сокет MariaDB или MySQL и его pid-файл.

Поиск сокета MySQL Unix или TCP

MySQL может слушать как сокеты unix, так и сокеты TCP. Чтобы узнать это, используйте этой команды

grep "socket" /etc/mysql/my.cnf

 

Если вы видите этот вывод, то MySQL использует unix-сокеты

listen = /var/run/mysqld/mysqld.sock

 

Поиск файла pid MySQL

Monit также нуждается в файле pid

sudo find /run -iname mysql*.pid

 

Вы должны увидеть такой вывод

/run/mysqld/mysqld.pid

 

Теперь у нас есть информация, необходимая для настройки Monit для мониторинга MySQL.

Настройка Monit для мониторинга MySQL, MariaDB, Percona

Создайте конфигурационный файл Monit MySQL, вы можете использовать папку conf-enabled вместо conf.d для проверки /etc/monit/monitrc.

sudo nano /etc/monit/conf.d/mysql

 

Эта конфигурация Monit MySQL предназначена для сокетов unix.

Он проверит файл mysqld.pid и если он не существует Monit попытается перезапустить его.

Monit также проверит сокет MySQL: /var/run/mysqld/mysqld.sock

check process mysql with pidfile /run/mysqld/mysqld.pid start program = "/usr/sbin/service mysql start" with timeout 60 seconds stop program = "/usr/sbin/service mysql stop" if failed unixsocket /var/run/mysqld/mysqld.sock then restart

 

Проверьте, что конфигурация Monit имеет допустимый синтаксис

sudo monit -t

 

Вы должны увидеть это сообщение, указывающее, что синтаксис Monit в порядке.

Control file syntax OK

 

Затем перезагрузите Monit, чтобы активировать конфигурацию

sudo service monit reload

 

Вы можете проверить свой статус MySQL Monit на порте 2812 или какой-либо другом порте, на который вы указали Monit, должен работать.

Теперь ваш MySQL-сервис будет автоматически перезагружен, если он когда-либо провалится.

 

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

andreyex.ru

Запуск, остановка, перезагрузка и проверка состояния Apache / MySQL на Centos

Запуск, остановка, перезагрузка и проверка состояния Apache / MySQL на Centos

Июнь 6, 2014 Мартин Кинг

В этом уроке мы собираем лучший способ начать, прекратить и перезапустить Apache и MySQL на CentOS. Поскольку CentOS используется главным образом для сервера, мы сделаем все эти шаги в командной строке (терминале). Мы даже будем использовать еще одну команду для проверки состояния поставщиков, чтобы убедиться, что они действительно вверх или вниз. Давайте начнем!

Apache:

Как запустить Apache

/etc/init.d/httpd начало

Как остановить Apache

/etc/init.d/httpd прекращение

Как записаться Перезапустить Apache

/etc/init.d/httpd перезагрузка

Как просмотреть Статус Apache

/etc/init.d/httpd Постоянный

(Пример остановки Apache)

websetnet.net

Установка и настройка MySql на CentOS

Кратко напишу, как установить MySql и настроить внешний доступ (доступ с другого сервера) к одной из таблиц.

Подразумевается, что мы работаем c правами root

 

Устанавливаем MySQL:

yum -y install mysql mysql-server

Прописываем MySQL в автозапуск:

Запускаем MySQL:

Устанавливаем root пароль MySQL:

mysqladmin -u root password 'new-password'

Где new-password — ваш новый root пароль для MySQL.

 

Есть системные пометки.

Следующее, что нужно сделать, это создать базу данных и пользователя с соответствующими правами.

 

Подключаемся к MySql:

И выполняем:

mysql> CREATE database db_test; mysql> GRANT ALL ON db_test.* TO tester@'YY.YY.YY.YY' IDENTIFIED BY 'Ваш пароль';

- т.е. создаем базу db_test и пользователя tester с полными правами на эту базу.Пароль пользователя будет 'Ваш пароль', а доступ для него будет открыт с адреса 'YY.YY.YY.YY'

 

Можно сначала создать пользователя, например, локального, а потом дать ему нужные права:

mysql> CREATE USER 'tester'@'localhost' IDENTIFIED BY 'Ваш пароль'; mysql> GRANT ALL ON db_test.* TO 'tester'@'localhost';

В продолжение мысли, если пользователи уже есть, то можно просто поменять их права:

mysql> USE mysql; mysql> UPDATE db set Host='YY.YY.YY.YY' WHERE Db='db_test'; mysql> UPDATE user set Host='YY.YY.YY.YY' WHERE user='tester';

'YY.YY.YY.YY' – еще раз уточню, это адрес сервера с коготоро нужно получать доступ.

 

Теперь выходим из MySql

 

Последнее, что нужно сделать, это перезагрузить mysql демона:

Есть системные пометки.

Если после этого к Вашим БД нет доступа извне, то стоит проверить, открыт ли порт 3306. Если порт закрыт, то нужно, в файле /etc/sysconfig/iptables добавить строчку:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

Строчку лучше перепечатать или скопировать и вставить из любых уже присутствующих – при прямом копировании иногда слетают символы переноса строки. После изменений iptables нужно перезагрузить:

oddler.ru