Не удалось перезапустить 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, выполнив следующие шаги
- Остановить MySQL
# systemctl stop mysqld
- Начать безопасный режим
# mysqld_safe --skip-grant-tables &
- Записан
# mysql -u root
- Сброс пароля
use mysql;
update user set password=PASSWORD("newpassword") WHERE user='root';
flush privileges;
quit;
- Остановить безопасный режим MySQL
# systemctl stop mysqld
- Запустить 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, и вы можете потерять данные и/или привести к повреждению в вашем случае.
Возможно, вы заметили, когда CentOS начинает запускать список сервисов и пытается их запустить. При выключении и перезагрузке (обычно) тот же список призван stop службы грациозно.
Если вы действительно параноик о своих базах данных и хотите быть вдвойне уверенными, что они остановлены перед перезагрузкой, вы можете напрямую выпустить команду stop.
'/etc/init.d/mysql stop' '/etc/init.d/mariadb stop'После этого вы получите подтверждение, что услуги будут остановлены. Затем вы можете выполнить команду reboot или shutdown -r now.
При запуске он должен перезапустить любые службы (например, ваши Db), если они установлены правильно. Вы можете проверить это, выполнив следующую команду chkconfig --list затем просмотрите список для интересующих вас вещей, и вы должны ожидать, что они начнут "запускать" на уровне запуска 3 и "остановить" на уровне 6-го уровня.
например
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;Создаем дамп базы данных:
# 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 на 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