Запустить службу mysql linux

Перезапуск MySQL

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

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

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

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

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

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

sudo systemctl restart mysql

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

sudo systemctl stop mysql
sudo systemctl start mysql

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

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

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

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

sudo systemctl edit mariadb

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

Выводы

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

Источник

Как запустить / остановить сервер mysql?

Я попытался найти в некоторых статьях, описывающих, как правильно начать & amp; stop mysql server.

Я нашел эту ссылку: Как запустить / остановить MySql-сервер на Ubuntu 8.04 | Abhi’s Blogging World

Читайте также:  Как сделать свой интегрированный windows

Я выполнил эту команду:

, но я вижу эту ошибку

После того, как я попробовал эту команду:

Я ввел свой пароль и снова вижу ту же ошибку.

И когда я запускаю эту команду:

Успех сервера MySQL. Круто!

Итак, что случилось с другими командами? Почему они приводят к ошибке?

7 ответов

Также помогает дважды проверить, что «mysql» — это правильное имя службы. В моем случае это не так. Я продолжал получать следующий ответ: mysql: нераспознанная служба при запуске

Затем я проверил /etc/init.d и нашел сценарий с именем mysqld, в котором указано имя процесса: mysqld и prog = mysqld

, и все они отлично работали.

Для Ubuntu 12.10 и более поздних версий:

START MYSQL:

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

Итак, я получил решение, что сервер MySQL не был установлен, поэтому я установил его, и моя проблема была решена. Команда для установки mysql-сервера:

После успешной установки запустите сервер MySQL как:

Этот должен работать для встроенного в MySQL сервера mysql:

Источник

Как проверить статус MySQL в Ubuntu?

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

Однако иногда сервер MySQL останавливается из-за ошибок или неправильной конфигурации. Это руководство покажет вам, как проверить состояние сервера MySQL и запустить его, если он не работает. Мы реализуем такие концепции, как сценарии systemd, crontab и bash для выполнения таких действий.

Предварительные условия

Прежде чем мы начнем, убедитесь, что у вас есть:

  • Установлен и настроен сервер MySQL
  • Иметь доступ к root или учетной записи с включенным sudo

Как только у нас будут указанные выше требования, мы можем приступить к работе.

Проверить статус MySQL — Systemd

Первый метод, на котором мы сосредоточимся, прежде чем рассказывать о том, как создать скрипт, — это использовать диспетчер systemd.

Systemd — это мощная система инициализации и диспетчер служб Linux, которая позволяет запускать, останавливать и отслеживать состояния демонов и служб. Кроме того, он предлагает такие функции, как ведение журнала и отслеживание использования и т.д. Таким образом, это обычный инструмент для системных администраторов.

Чтобы использовать systemd для проверки службы MySQL, используйте команду как:

После того, как вы выполните указанную выше команду, systemd запустит службу, если не возникнет никаких ошибок. Чтобы проверить статус сервиса, используйте команду:

Это даст вам результат ниже, показывающий, что служба работает.

Проверить статус MySQL — MySQLadmin

Мы также можем использовать такой инструмент, как mysqladmin. Утилита командной строки администрирования сервера MySQL для проверки состояния сервера MySQL.

Используйте команду как:

Если сервер MySQL запущен и работает, вы получите результат, как показано ниже:

Uptime: 35 Threads: 1 Questions: 4 Slow queries: 0 Opens: 103 Flush tables: 3 Open tables: 24 Queries per second avg: 0.114

Bash скрипт

Имея информацию о двух описанных выше методах, мы можем реализовать довольно простой сценарий bash, чтобы проверить, запущена ли служба, и запустить ее, если нет.

Шаг 1. Проверьте, запущена ли служба

Первое, что должен сделать наш сценарий, это проверить, запущена ли служба; мы можем получить это из вывода systemd как:

Читайте также:  Windows 10 classic novik

Шаг 2: Перенаправить стандартную ошибку на стандартный вывод

После того, как мы получим статус службы с помощью grep, мы можем перенаправить EOF в / dev / null и файловый дескриптор как:

Шаг 3: Получение возвращаемого значения

На следующем шаге мы проверяем возвращаемое значение из приведенной выше команды с помощью символа $?

Шаг 4: Собираем все вместе

Теперь, когда у нас есть все функциональные возможности скрипта, мы можем собрать скрипт как:

#!/bin/bash
systemctl status mysql.service | grep ‘active’ > /dev/null 2>&1
if [ $? != 0 ]
then
systemctl start mysql.service
fi

Теперь сохраните скрипт и сделайте его исполняемым

Шаг 5: Сообщите Cron

И последний шаг, который нам нужно сделать, это сообщить cron о нашем скрипте и автоматически управлять им.

Сделать это можно с помощью команды:

Введите следующие строки.

Это позволит cron запускать скрипт каждые 5 минут и запускать службу.

Заключение

В этом руководстве мы использовали systemd для проверки состояния MySQL и его перезапуска. Мы также реализовали сценарий bash и cron, чтобы автоматически обрабатывать проверку и перезапускать процесс.

Источник

Не запускается Mysql

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

Иногда случается, что из-за после изменения настроек или по какой-либо другой причине mysql не запускается. Это довольно серьезная проблема, особенно, когда такая ситуация случается на сервере публичного проекта. В этой статье мы рассмотрим основные причины почему может возникать такая проблема, а также пути решения. В качестве примера будет использоваться Mariadb и Ubuntu.

Почему не запускается MySQL сервер?

Если вы используете systemd для запуска сервисов, то получите такую ошибку:

failed to start mysql server или job for mysql failed because the control proccess exited

Из сообщения понято только то что что-то пошло не так, но что именно неизвестно. Чаще всего проблемы в работе MySQL могут вызвать такие причины:

  • Синтаксические ошибки в конфигурационном файле;
  • Неверные настройки;
  • Недостаточное количество оперативной памяти на сервере;
  • Проблемы с правами доступа;
  • Сетевой порт уже занят;
  • Таблицы баз данных повреждены;

Дальше мы рассмотрим основные пути решения этих проблем. Но сначала нам нужно выяснить почему не запускается программа. Гадать на кофейной гуще и перебирать все возможные методы решения можно очень долго, самым эффективным решением будет посмотреть какие ошибки выдает сама программа.

Что делать если не запускается MySQL?

Первым делом, если вы меняли настройки в конфигурационном файле надо проверить его на ошибки. Встроенной утилиты для таких целей нет, но можно запустить mysql daemon с опцией —help:

/usr/sbin/mysqld —help —verbose

В начале вывода будут представлены обнаруженные в основном конфигурационном файле ошибки. Например, здесь я специально добавил несуществующую переменную. Вам остается только исправить ошибки и перезапустить mysql:

systemctl restart mariadb

Если же это не сработало и вы все еще получаете ошибку, посмотрите лог загрузки systemd для этого сервиса:

systemctl status -l mariadb

Иногда здесь тоже можно найти полезную информацию, но в данном случае ничего нет. Следующий шаг — просмотр лога mysql. Если лог еще не включен, включаем его добавив такую строчку в /etc/mysql/my.cnf в секцию [mysqld]:

sudo vi /etc/mysql/my.cnf

[mysqld]
log-error=/var/log/mysql/error.log
Затем снова пытаемся запустить сервис и смотрим на появившиеся в логе ошибки:

Читайте также:  4ch usb dvr драйвер для windows 10

tail -f /var/log/mysql/error.log

Здесь вы увидите ошибки, которые мешают запустить mysql. Здесь надо искать слова: Fail, Error, Warning, Aborted и так далее. Вам остается только их исправить. Исправить проблемы с синтаксисом, убрать опции, которые потребляют слишком много памяти и исправить другие проблемы. А теперь рассмотрим несколько распространенных проблем.

1. Изменение размера буфера innodb

Если вы измените значение директивы innodb_buffer_pool_size в большую или меньшую сторону пока сервис работает, то перезапустить вы его уже не сможете. Перед тем как менять значение директивы остановите mysql:

sudo systemctl stop mariadb

Затем удалите старые логи innodb или просто их переименуйте:

sudo mv /var/lib/mysql/ib_logfile0 <,bak>
sudo mv /var/lib/mysql/ib_logfile1

И только после этого можете снова запускать сервис, он запустится с новыми настройками размера буфера. Только будьте аккуратны с выбором размера. При слишком большом размере может не хватить памяти для запуска, так как весь буфер хранится в ОЗУ.

sudo systemctl start mariadb

2. Ошибка Permission denied

MySQL хранит файлы базы данных на диске. У движка базы данных должен быть полный доступ к папке, в которой хранятся эти файлы. По умолчанию в Ubuntu это /var/lib/mysql/. Все файлы в этой папке должны принадлежать пользователю mysql:

ls -l /var/lib/mysql/

Если это не так, исправляем командой:

sudo chown -R mysql:mysql /var/lib/mysql/

3. Ошибка Address already in use

MySQL может использовать файловый сокет Linux или же сетевой сокет, тогда база данных будет доступна другим программам на порту 3306. Если сейчас уже запущен другой процесс mysql или какой-либо другой процесс занимает этот порт вы получите ошибку Address already in use. Чтобы ее решить смотрим какой процесс использует порт:

sudo ss -lptn ‘sport = :3306’

Например, здесь мы видим, что запущен другой экземпляр mysql с PID 11240. Вы можете его завершить с помощью kill:

sudo kill -TERM 11240

Теперь база данных запуститься.

4. Ошибка corrupt database page Mysql

Если mysql завершился некорректно из-за недостатка памяти или других проблем, например, проблем с файловой системой, то таблицы innodb могут быть повреждены — corrupt database page. Это происходит не так часто. При такой проблеме вы увидите такую запись в логе:

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

Нам необходимо запустить mysql в режиме восстановления, в котором все повреждения таблиц будут игнорироваться. Для этого добавляем в конфигурационный файл /etc/mariadb/my.cnf строку:

sudo vi /etc/mariadb/my.cnf

Затем запускаем mysql:

systemctl start mariadb

Ошибок не будет и сервис запуститься. Нам остается только исправить таблицы. Для этого можно воспользоваться инструментом mysqlcheck:

mysqlcheck -u root —auto-repair —all-databases

Готово. Теперь возвращаемся в конфигурационный файл и комментируем или удаляем строку innodb_force_recovery.

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

sudo systemctl restart mariadb

Выводы

В этой статье мы рассмотрели основные причины почему не запускается mysql сервер. Теперь вы сможете очень быстро с ними справиться, если столкнетесь в своей работе. А с какими еще проблемами кроме этих сталкивались вы? Какие были пути решения? Давайте дополним статью вместе, пишите в комментариях!

Источник

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