Mysql

Mysql restart debian: Как перезапустить MySQL сервер в Linux

Содержание

Перезапуск 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 mysql
sudo systemctl start mysql

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

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

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

Restart=always

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

sudo systemctl edit mariadb

[Service]
Restart=always

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

Выводы

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

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

Загрузка…

Не запускается MYSQL в чем причина? — Хабр Q&A

Сейчас выдает такие ошибки [….] Starting mysql (via systemctl): mysql.serviceJob for mysql.service failed because the control process exited with error code. See «systemctl status mysql.service» and «journalctl -xe» for details.
failed!
root@broadband:/var/lib/mysql# journalctl -xe
авг 03 16:23:03 broadband kernel: [UFW BLOCK] IN=enp5s0f0 OUT= MAC=00:15:17:2a:e6:70:00:00:5e:00:01:95:08:00 SRC=212.34.248.214 DST=188.32.114.207 LEN=40 TOS=0x00 PREC=
авг 03 16:23:10 broadband kernel: [UFW BLOCK] IN=enp5s0f0 OUT= MAC=00:15:17:2a:e6:70:00:00:5e:00:01:95:08:00 SRC=83.220.237.132 DST=188.32.114.207 LEN=40 TOS=0x08 PREC=
авг 03 16:23:10 broadband kernel: [UFW BLOCK] IN=enp5s0f0 OUT= MAC=00:15:17:2a:e6:70:00:00:5e:00:01:95:08:00 SRC=83. 220.237.132 DST=188.32.114.207 LEN=40 TOS=0x08 PREC=
авг 03 16:23:11 broadband sudo[6000]: root : TTY=pts/0 ; PWD=/var/lib/mysql ; USER=root ; COMMAND=/etc/init.d/mysql start
авг 03 16:23:11 broadband sudo[6000]: pam_unix(sudo:session): session opened for user root by serveradmin(uid=0)
авг 03 16:23:11 broadband systemd[1]: Starting LSB: Start and stop the mysql database server daemon…
— Subject: Начинается запуск юнита mysql.service
— Defined-By: systemd
— Support: lists.freedesktop.org/mailman/listinfo/systemd-devel

— Начат процесс запуска юнита mysql.service.
авг 03 16:23:11 broadband mysql[6017]: * Starting MariaDB database server mysqld
авг 03 16:23:14 broadband mysqld_safe[6622]: Starting mysqld daemon with databases from /var/lib/mysql
авг 03 16:23:14 broadband mysqld[6627]: 180803 16:23:14 [Warning] ‘THREAD_CONCURRENCY’ is deprecated and will be removed in a future release.
авг 03 16:23:14 broadband mysqld[6627]: 180803 16:23:14 [Warning] ‘THREAD_CONCURRENCY’ is deprecated and will be removed in a future release.
авг 03 16:23:14 broadband mysqld[6627]: 180803 16:23:14 [Note] /usr/sbin/mysqld (mysqld 10.0.33-MariaDB-0ubuntu0.16.04.1) starting as process 6626 …
авг 03 16:23:14 broadband mysqld[6627]: 180803 16:23:14 [ERROR] mysqld: File ‘/var/log/mysql/mysql-bin.index’ not found (Errcode: 13 «Permission denied»)
авг 03 16:23:14 broadband mysqld[6627]: 180803 16:23:14 [ERROR] Aborting
авг 03 16:23:14 broadband mysqld[6627]:
авг 03 16:23:14 broadband mysqld[6627]: 180803 16:23:14 [Note] /usr/sbin/mysqld: Shutdown complete
авг 03 16:23:14 broadband mysqld[6627]:
авг 03 16:23:14 broadband mysqld_safe[6630]: mysqld from pid file /var/run/mysqld/mysqld.pid ended
авг 03 16:23:20 broadband kernel: [UFW BLOCK] IN=enp5s0f0 OUT= MAC=00:15:17:2a:e6:70:00:00:5e:00:01:95:08:00 SRC=188.92.20.98 DST=188.32.114.207 LEN=40 TOS=0x00 PREC=0x
авг 03 16:23:24 broadband kernel: [UFW BLOCK] IN=enp5s0f0 OUT= MAC=00:15:17:2a:e6:70:00:00:5e:00:01:95:08:00 SRC=195.38.23.96 DST=188. 32.114.207 LEN=52 TOS=0x00 PREC=0x
авг 03 16:23:43 broadband CRON[5928]: pam_unix(cron:session): session closed for user root
авг 03 16:23:43 broadband /etc/init.d/mysql[7063]: 0 processes alive and ‘/usr/bin/mysqladmin —defaults-file=/etc/mysql/debian.cnf ping’ resulted in
авг 03 16:23:43 broadband /etc/init.d/mysql[7063]: [61B blob data]
авг 03 16:23:43 broadband mysql[6017]: …fail!
авг 03 16:23:43 broadband /etc/init.d/mysql[7063]: error: ‘Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (111 «Connection refused»)’
авг 03 16:23:43 broadband /etc/init.d/mysql[7063]: Check that mysqld is running and that the socket: ‘/var/run/mysqld/mysqld.sock’ exists!
авг 03 16:23:43 broadband /etc/init.d/mysql[7063]:
авг 03 16:23:43 broadband systemd[1]: mysql.service: Control process exited, code=exited status=1
авг 03 16:23:43 broadband systemd[1]: Failed to start LSB: Start and stop the mysql database server daemon.
— Subject: Ошибка юнита mysql.service
— Defined-By: systemd
— Support: lists.freedesktop.org/mailman/listinfo/systemd-devel

— Произошел сбой юнита mysql.service.

— Результат: failed.
авг 03 16:23:43 broadband systemd[1]: mysql.service: Unit entered failed state.
авг 03 16:23:43 broadband systemd[1]: mysql.service: Failed with result ‘exit-code’.
авг 03 16:23:43 broadband sudo[6000]: pam_unix(sudo:session): session closed for user root

Устанавливаем MySQL сервер на Debian 10

Автор: Skull

Статья написана 2020-04-09 12:10:35
Последние правки 2020-04-09 12:51:30

Официально в репозитории Debian Buster в качестве mysql-сервера указан mariadb. Но мы, как обычно, не ищем легких путей и хотим MySQL original! При установке можно будет выбрать версию Mysql — 5.7, 8, а также кластерные.

  • Установка

    Хотя Debian и переметнулся к mariadb, разработчики MySQL решили не оставлять его в покое и запилили свой официальный PPA, который мы и добавим в систему. Вначале идем сюда и ищем самую последнюю версию mysql-apt-config_*_all.deb. У меня это был файл mysql-apt-config_0.8.15-1_all.deb. Скачиваем и устанавливаем:

    
    wget https://repo.mysql.com/mysql-apt-config_0.8.15-1_all.deb
    sudo dpkg -i mysql-apt-config_0.8.15-1_all.deb
    


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

    
    sudo dpkg-reconfigure mysql-apt-config
    


    Далее:

    
    # apt-get update 
    # apt-get install mysql-server
    


    Готово! MySQL установлен! Если вдруг служба не стартовала, то выполняем команду:

    
    # systemctl restart mysql
    



  • Обязательно после установки!

    Чистим всякую ненужную фигню средством от разработчиков:

    
    # /usr/bin/mysql_secure_installation
    


    В числе обязательного — задать пароль root и разрешить root заходить исключительно локально.


Связанные странички:
Cтавим MySQL 5.6 или 5.7 на Debian
Debian, репозитории
Asterisk 13 RealTime с MySQL
Debian. Установка и настройка owfs
Debian сервисы
Настройка сетевых интерфейсов в Debian
Raspberry Pi, Raspbian, mysql
Устанавливаем MySQL сервер (mariadb) на Raspbian Buster
Debian — Setting locale failed
Ставим Xvfb на Debian Jessie

Linux: systemctl — управление службами

Debian, начиная с 8 версии по умолчанию используется systemd вместо init.d, который использует unit-файлы из каталога /etc/systemd/system, вместо скриптов в /etc/init.d/, как это делает init.d.

Краткое перечисление полезных команд systemctl.

Получение списка служб

Вывести на экран активные сервисы и их состояние:

# systemctl list-units -t service
UNIT                               LOAD   ACTIVE SUB     DESCRIPTION
acpid. service                      loaded active running ACPI event daemon
atd.service                        loaded active running Deferred execution scheduler
console-setup.service              loaded active exited  LSB: Set console font and keymap
...
LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.

32 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.

Что бы убрать «легенду» внизу списка — используйте --no-legend.

Что бы вывести все сервисы — используйте--all:

# systemctl list-units -t service --all
...
63 loaded units listed.
...

Управление службами

Проверить состояние отдельного сервиса:

# systemctl status mysql
● mysql. service - LSB: Start and stop the mysql database server daemon
   Loaded: loaded (/etc/init.d/mysql)
   Active: active (running) since Sun 2016-04-24 10:30:32 GMT; 16min ago
   CGroup: /system.slice/mysql.service
           ├─3076 /bin/bash /usr/bin/mysqld_safe
           ├─3077 logger -p daemon.err -t /etc/init.d/mysql -i
           ├─3215 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --skip-log-error --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306
           └─3216 logger -t mysqld -p daemon.error

Apr 24 10:30:36 debian-jessie /etc/mysql/debian-start[3267]: mysql.time_zone_transition                         OK
Apr 24 10:30:36 debian-jessie /etc/mysql/debian-start[3267]: mysql.time_zone_transition_type                    OK
Apr 24 10:30:36 debian-jessie /etc/mysql/debian-start[3267]: mysql.user                                         OK
. ..

Запустить сервис:

# systemctl start mysql

Остановить:

# systemctl stop mysql

Перезагрузить конфигурацию сервиса:

# systemctl reload mysql

Перезапустить службу:

# systemctl restart mysql

Перезапустить, если она запущена:

# systemctl try-restart mysql

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

# systemctl reload-or-restart mysql

Убить службу:

# systemctl kill mysql

Больше по kill см. тут>>>.

Проверить запущен и работает ли сервис:

# systemctl is-active mysql
active

Или с помощью кода выполнения:

# systemctl is-active mysql; echo $?
active
0
# systemctl is-active mysql --quiet; echo $?
0

Аналогично можно проверить были ли проблемы при запуске сервиса и запущен ли он в данный момент:

# systemctl is-failed mysql
active
# systemctl is-failed mysql --quiet; echo $?
1

Если сервис был корретно остановлен:

# systemctl is-failed mysql
inactive

Управление автозапуском

Добавить в автозапуск:

# systemctl enable mysql

Убрать из автозапуска:

# systemctl disable mysql

Проверить — есть ли юнит в автозапуске:

# systemctl is-enabled sshd
enabled

Аналогично примеру с is-active — можно использовать is-enabled:

# systemctl is-enabled sshd
enabled
# systemctl is-enabled sshd --quiet; echo $?
0

Ссылки по теме

SysVinit to Systemd Cheatsheet

Getting Started with systemd

How To Use Systemctl to Manage Systemd Services and Units

Устраняем типичные ошибки в MySQL

MySQL — система управления базами данных (СУБД) с открытым исходным кодом от компании Oracle. Она была разработана и оптимизирована специально для работы веб-приложений. MySQL является неотъемлемой частью таких веб-сервисов, как Facebook, Twitter, Wikipedia, YouTube и многих других.

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

Не удаётся подключиться к локальному серверу

Одной из распространённых ошибок подключения клиента к серверу является «ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)».

Эта ошибка означает, что на хосте не запущен сервер MySQL (mysqld) или вы указали неправильное имя файла сокета Unix или порт TCP/IP при попытке подключения.

Убедитесь, что сервер работает. Проверьте процесс с именем mysqld на хосте сервера, используя команды ps или grep, как показано ниже.

$ ps xa | grep mysqld | grep -v mysqld

Если эти команды не показывают выходных данных, то сервер БД не работает. Поэтому клиент не может подключиться к нему. Чтобы запустить сервер, выполните команду systemctl.

$ sudo systemctl start mysql        #Debian/Ubuntu
$ sudo systemctl start mysqld       #RHEL/CentOS/Fedora

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

$ sudo systemctl status mysql       #Debian/Ubuntu
$ sudo systemctl status mysqld      #RHEL/CentOS/Fedora

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

$ sudo systemctl restart mysql
$ sudo systemctl status mysql

Если сервер работает (как показано) и вы по-прежнему видите эту ошибку, вам следует проверить, не заблокирован ли порт TCP/IP брандмауэром или любой другой службой блокировки портов.

Для поиска порта, который прослушивается сервером, используйте команду netstat.

$ sudo netstat -tlpn | grep "mysql"

Не удаётся подключиться к серверу MySQL

Ещё одна похожая и часто встречающаяся ошибка подключения — «(2003) Can’t connect to MySQL server on ‘server’ (10061)». Это означает, что в сетевом соединении было отказано.

Следует проверить, работает ли в системе сервер MySQL (смотрите выше) и на тот ли порт вы подключаетесь (как найти порт, можно посмотреть выше).

Похожие частые ошибки, с которыми вы можете столкнуться при попытке подключиться к серверу MySQL:

ERROR 2003: Cannot connect to MySQL server on 'host_name' (111)
ERROR 2002: Cannot connect to local MySQL server through socket '/tmp/mysql.sock' (111)

Ошибки запрета доступа в MySQL

В MySQL учётная запись (УЗ) определяется именем пользователя и клиентским хостом, с которого пользователь может подключиться. УЗ может также иметь данные для аутентификации (например, пароль).

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

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

Увидеть разрешённые привилегии учётной записи можно, выполнив в консоли команду SHOW GRANTS
Входим в консоль (пример для Unix, для Windows консоль можно найти в стартовом меню):

В консоли вводим команду:

mysql -u root -p

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

> SHOW GRANTS FOR 'tecmint'@'localhost';

Ошибки запрещённого доступа могут также возникнуть из-за проблем с подключением к MySQL (см. выше).

Потеря соединения с сервером MySQL

С этой ошибкой можно столкнуться по одной из следующих причин:

  • плохое сетевое соединение;
  • истекло время ожидания соединения;
  • размер BLOB  больше, чем max_allowed_packet.

В первом случае убедитесь, что у вас стабильное сетевое подключение (особенно, если подключаетесь удалённо).

Если проблема с тайм-аутом соединения (особенно при первоначальном соединении MySQL с сервером), увеличьте значение параметра connect_timeout.

В случае с размером BLOB нужно установить более высокое значение для max_allowed_packet в файле конфигурации /etc/my.cnf в разделах [mysqld] или [client] как показано ниже.

> grant all privileges on *.test_db to 'tecmint'@'192.168.0.100';
> flush privileges;

Если файл конфигурации недоступен, это значение можно установить с помощью следующей команды.

[mysqld]
connect_timeout=100
max_allowed_packet=500M

Слишком много подключений

Эта ошибка означает, что все доступные соединения используются клиентскими программами. Количество соединений (по умолчанию 151) контролируется системной переменной max_connections. Устранить проблему можно, увеличив значение переменной в файле конфигурации /etc/my.cnf.

> SET GLOBAL connect_timeout=100;
> SET GLOBAL max_allowed_packet=524288000;

Недостаточно памяти

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

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

  • если клиент MySQL используется напрямую, запустите его с ключом --quick switch, чтобы отключить кешированные результаты;
  • если вы используете драйвер MyODBC, пользовательский интерфейс (UI) имеет расширенную вкладку с опциями. Отметьте галочкой «Do not cache result» (не кешировать результат).

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

[mysqld]
max_connections=1000

MySQL продолжает «падать»

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

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

$ sudo systemctl status mysql       #Debian/Ubuntu
$ sudo systemctl status mysqld      #RHEL/CentOS/Fedora

Чтобы узнать время безотказной работы сервера, запустите команду mysqladmin.

$ sudo apt-get install mysqltuner     #Debian/Ubuntu
$ sudo yum install mysqltuner         #RHEL/CentOS/Fedora
$ mysqltuner

Кроме того, можно остановить сервер, сделать отладку MySQL и снова запустить службу. Для отображения статистики процессов MySQL во время выполнения других процессов откройте окно командной строки и введите следующее:

$ sudo mysqladmin version -p 

Или

$ sudo mysqladmin -i 5 status

Заключение

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

  • Первый и самый важный шаг — просмотреть журналы MySQL, которые хранятся в каталоге /var/log/mysql/. Вы можете использовать утилиты командной строки вроде tail для чтения файлов журнала.
  • Если служба MySQL не запускается, проверьте её состояние с помощью systemctl. Или используйте команду journalctl (с флагом -xe) в systemd.
  • Вы также можете проверить файл системного журнала (например, /var/log/messages) на предмет обнаружения ошибок.
  • Попробуйте использовать такие инструменты, как Mytop, glances, top, ps или htop, чтобы проверить, какая программа использует весь ресурс процессора или блокирует машину. Они также помогут определить нехватку памяти, дискового пространства, файловых дескрипторов или какого-либо другого важного ресурса.
  • Если проблема в каком-либо процессе, можно попытаться его принудительно остановить, а затем запустить (при необходимости).
  • Если вы уверены, что проблемы именно на стороне сервера, можете выполнить команды: mysqladmin -u root ping или mysqladmin -u root processlist, чтобы получить от него ответ.
  • Если при подключении проблема не связана с сервером, проверьте, нормально ли работает клиент. Попробуйте получить какие-либо его выходные данные для устранения неполадок.

Перевод статьи «Useful Tips to Troubleshoot Common Errors in MySQL»

Изменение пароля MySQL в Debian с помощью учетной записи debian-sys-maint. — Мои записки о Linux.

1. Учетная запись debian-sys-maint.

В системах Debian существует (системный) пользователь MySQL debian-sys-maint, который используется сценариями инициализации системы для управления базой данных mysql, например, для запуска или остановки сервера mysql, проверки состояния. Пароль этого пользователя сохраняется в файле /etc/mysql/debian.cnf.

Файл выглядит следующим образом:

# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host = localhost
user = debian-sys-maint
password = <password>
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host = localhost
user = debian-sys-maint
password = <password>
socket = /var/run/mysqld/mysqld.sock
basedir = /usr

Если этот пароль не совпадает с фактическим паролем на сервере mysql, сценарии инициализации mysql не будут выполнены:

# /etc/init.d/mysql restart 
* Остановка сервера базы данных MySQL mysqld [ fail ]

* Запуск MySQL-сервера базы данных mysqld [ OK ] 
# /etc/init.d/mysql status 
/ usr / bin / mysqladmin: подключение к серверу в ‘ localhost ‘ не удалось
error: ‘Доступ запрещен для пользователя’ debian-sys-maint ‘@’ localhost ‘(с использованием пароля: YES)’

Кроме того, попытка обновления сервера mysql завершится с ошибкой, например:

Fehler traten auf beim Bearbeiten von:
/ var / cache / apt / archives / mysql- server — 5. 1 _5.1.37-1ubuntu5.1_i386.deb
E: Подпроцесс / usr / bin / dpkg возвращает код ошибки ( 1 )

Чтобы устранить проблему, вам необходимо обновить пароль mysql для пользователя debian-sys-maint. Откроем файл /etc/mysql/debian.cnf:

# nano /etc/mysql/debian.cnf

[client]
host = localhost
user = debian-sys-maint
password = phV6nItAKmaltygX
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
user = debian-sys-maint
password = phV6nItAKmaltygX
socket = /var/run/mysqld/mysqld.sock
basedir = /usr

Запишем пароль password = phV6nItAKmaltygX

Обновим пароль на сервере mysql (вам нужен доступ к mysql root):

# mysql -u root -p

# Then type MySQL root password
mysql>GRANT ALL PRIVILEGES ON *.* TO ‘debian-sys-maint’@’localhost’ IDENTIFIED BY ‘<phV6nItAKmaltygX>’;

2. Изменение пароля MySQL в Debian с помощью учетной записи debian-sys-maint.

Если пароль root пользователя сервера БД MySQL по каким то причинам был утерян то его всегда можно восстановить используя системную учетную запись сервера БД debian-sys-maint:

2.1. Получаем пароль.

# nano /etc/mysql/debian.cnf

[client]
host = localhost
user = debian-sys-maint
password = phV6nItAKmaltygX
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
user = debian-sys-maint
password = phV6nItAKmaltygX
socket = /var/run/mysqld/mysqld.sock
basedir = /usr

2.2. Получаем доступ к серверу MySQL.

# mysql -u debian-sys-maint -p

в качестве пароля вводим phV6nItAKmaltygX

2.3. Начинаем работать с базой mysql.

mysql> use mysql;

2.4. Обновляем пароль root пользователя сервера баз данных:

mysql>update user set password=PASSWORD(«newpass«) where User=’root’;

В этой команде необходимо изменить newpass на нужный нам пароль.

2.5. Обновляем привилегии и завершаем работу с сервером MySQL.

mysql>flush privileges;

mysql>quit

2.6. Пробуем получить доступ к серверу используя учетную запись root.

# mysql -u root -p

Вводим новый пароль.


ИСТОЧНИКИ.

Изменение пароля MySQL в Debian.

Ubuntu: Reset debian-sys-maint’s mysql password.

linux — mysql не запускается при запуске debian (systemd), но запуск вручную работает

У меня странная проблема с MySQL на сервере Debian (Jessie).

При перезапуске сервера systemd попытается запустить mysqld, но это не удастся (похоже, что порт 3306 уже используется, но я не понимаю, почему это так).

Однако, если я подключусь к серверу по SSH всего через несколько минут и запущу sudo systemctl start mysql , все будет успешно.

Проблема может воспроизводиться каждый раз при перезапуске сервера.

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

Вот результат sudo systemctl status mysql -l после перезагрузки:

  ● mysql.service - LSB: запускает и останавливает демон сервера базы данных mysql.
   Загружено: загружено (/etc/init.d/mysql)
   Активно: не удалось (Результат: код выхода) с пятницы 2017-09-01 21:54:44 CEST; 1мин 41с назад
  Процесс: 581 ExecStart = / etc / init.d / mysql start (код = завершено, статус = 1 / ОТКАЗ)

01 сен 21:54:06 gimli systemd [1]: Запуск LSB: запуск и остановка демона сервера базы данных mysql ...
01 сен 21:54:44 gimli mysql [581]: Запуск сервера базы данных MySQL: mysqld. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . не смогли!
01 сен 21:54:44 gimli systemd [1]: mysql. service: процесс управления завершен, код = завершен, статус = 1
01 сентября 21:54:44 gimli systemd [1]: не удалось запустить LSB: запустить и остановить демон сервера базы данных mysql.
01 сен 21:54:44 gimli systemd [1]: Модуль mysql.служба перешла в состояние ошибки.
  

и соответствующий журнал из /var/log/mysql/error.log

  170901 21:54:16 [Предупреждение] Использование уникального префикса опции myisam-recovery вместо myisam-recovery-options устарело и будет удалено в следующем выпуске. Вместо этого используйте полное имя.
170901 21:54:16 [Примечание] Плагин «FEDERATED» отключен.
170901 21:54:17 InnoDB: куча памяти InnoDB отключена
170901 21:54:17 InnoDB: мьютексы и rw_locks используют атомарные встроенные функции GCC
170901 21:54:17 InnoDB: сжатые таблицы используют zlib 1.2,8
170901 21:54:17 InnoDB: использование встроенного в Linux AIO
170901 21:54:17 InnoDB: инициализация буферного пула, размер = 128.0M
170901 21:54:17 InnoDB: завершена инициализация буферного пула
170901 21:54:17 InnoDB: самый поддерживаемый формат файла - Barracuda. 
170901 21:54:22 InnoDB: ожидание запуска фоновых потоков
170901 21:54:23 InnoDB: 5.5.57 запущен; порядковый номер журнала 351234412
170901 21:54:23 [Примечание] Имя хоста сервера (адрес привязки): '192.168.1.14'; порт: 3306
170901 21:54:23 [Примечание] - '192.168.1.14 'преобразуется в' 192.168.1.14 ';
170901 21:54:23 [Примечание] Серверный сокет создан на IP: 192.168.1.14.
170901 21:54:23 [ОШИБКА] Невозможно запустить сервер: привязка к порту TCP / IP: невозможно назначить запрошенный адрес
170901 21:54:23 [ОШИБКА] У вас уже есть другой сервер mysqld, работающий на порту: 3306?
170901 21:54:23 [ОШИБКА] Прерывание

170901 21:54:23 InnoDB: запуск выключения ...
170901 21:54:24 InnoDB: завершение работы; порядковый номер журнала 351234412
170901 21:54:24 [Примечание] / usr / sbin / mysqld: Завершение работы
  

Однако, если я запускаю sudo systemctl start mysql вручную, он работает правильно:

  170901 22:01:36 [Предупреждение] Использование уникального префикса опции myisam-recovery вместо myisam-recovery-options устарело и будет удалено в следующем выпуске. Вместо этого используйте полное имя.
170901 22:01:36 [Примечание] Плагин «FEDERATED» отключен.
170901 22:01:36 InnoDB: куча памяти InnoDB отключена
170901 22:01:36 InnoDB: мьютексы и rw_locks используют атомарные встроенные функции GCC
170901 22:01:36 InnoDB: сжатые таблицы используют zlib 1.2.8
170901 22:01:36 InnoDB: использование встроенного в Linux AIO
170901 22:01:36 InnoDB: инициализация буферного пула, размер = 128.0M
170901 22:01:36 InnoDB: завершена инициализация буферного пула
170901 22:01:36 InnoDB: самый высокий поддерживаемый формат файла - Barracuda.170901 22:01:36 InnoDB: ожидание запуска фоновых потоков
170901 22:01:37 InnoDB: 5.5.57 запущен; порядковый номер журнала 351234412
170901 22:01:37 [Примечание] Имя хоста сервера (адрес привязки): '192.168.1.14'; порт: 3306
170901 22:01:37 [Примечание] - «192.168.1.14» преобразуется в «192.168.1.14»;
170901 22:01:37 [Примечание] Серверный сокет создан на IP: 192.168.1.14.
170901 22:01:37 [Примечание] Планировщик событий: загружено 0 событий
170901 22:01:37 [Примечание] / usr / sbin / mysqld: готов к подключению. 
Версия: '5.5.57-0 + deb8u1' сокет: '/ var / run / mysqld / mysqld.порт sock: 3306 (Debian)
  

Насколько мне известно, сценарий systemd не был изменен (это тот, который поставляется с пакетом Debian mysql), и, насколько мне известно, он никогда не работал правильно. Порт 3306 не должен использоваться другим процессом.

Как запустить, остановить и перезапустить сервер базы данных MySQL?

В этом посте мы увидим, как запускать, останавливать и перезапускать MySQL Server в macOS, Linux и Windows.

1. На Mac

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

  • Для версии MySQL старше 5.7:
  sudo /usr/local/mysql/support-files/mysql.server start
sudo /usr/local/mysql/support-files/mysql.server stop
sudo /usr/local/mysql/support-files/mysql.server перезапуск
  
  • Для MySQL версии 5.7 и новее:
  sudo launchctl load -F /Library/LaunchDaemons/com. oracle.oss.mysql.mysqld.plist

sudo launchctl unload -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
  
  • Или вы можете включить / выключить его через панель настроек macOS

Есть еще один способ использовать DBngin , бесплатную утилиту для установки и управления несколькими серверами баз данных на Mac.

  • Чтобы включить / выключить, достаточно одного щелчка мышки на панели управления сервером:

2. В Linux

  • В Linux запуск / остановка из командной строки:
  / etc / init.d / mysqld start
/etc/init.d/mysqld стоп
/etc/init.d/mysqld перезапуск
  
  • Некоторые разновидности Linux также предлагают служебную команду
  запуск службы mysqld
остановка службы mysqld
перезапуск службы mysqld
  
  запуск службы MySQL
служба mysql stop
перезапуск службы mysql
  

3. В Windows

  • Открыть окно запуска с помощью Winkey + R
  • Тип services.msc
  • Служба поиска MySQL в зависимости от установленной версии.
  • Нажмите «Остановить», «запустить» или перезапустить опцию обслуживания.

Или вы можете запустить / остановить MySQL из командной строки:

  C: \> «C: \ Program Files \ MySQL \ MySQL Server 8.0 \ bin \ mysqld»
C: \> "C: \ Program Files \ MySQL \ MySQL Server 8.0 \ bin \ mysqladmin" -u root shutdown
  

Нужен хороший инструмент с графическим интерфейсом для MySQL в MacOS и Windows? TablePlus — это современный собственный инструмент с элегантным графическим интерфейсом, который позволяет одновременно управлять несколькими базами данных, такими как MySQL, PostgreSQL, SQLite, Microsoft SQL Server и другими.

Загрузить TablePlus для Mac . В любом случае это бесплатно!

Не на Mac? Загрузите TablePlus для Windows .

4.3 mysql.server — сценарий запуска сервера MySQL

4.3 mysql.server — сценарий запуска сервера MySQL

Дистрибутивы MySQL для Unix и Unix-подобных систем включают
скрипт с именем mysql.server , который запускает
Сервер MySQL с использованием mysqld_safe .Это может быть
используется в таких системах, как Linux и Solaris, которые используют System
Каталоги запуска в стиле V для запуска и остановки системных служб. это
также используется элементом запуска macOS для MySQL.

mysql.server — используемое имя сценария
в дереве исходного кода MySQL. Установленное имя может быть
разные (например, mysqld или
mysql ). В следующем обсуждении настройте
имя mysql.сервер в зависимости от вашего
система.

Примечание

Для некоторых платформ Linux установка MySQL из RPM или
Пакеты Debian включают поддержку systemd для управления MySQL
запуск и завершение работы сервера. На этих платформах
mysql.server и
mysqld_safe не установлены, потому что они
не нужны. Для получения дополнительной информации см.
Управление сервером MySQL с помощью systemd.

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

  mysql.server start
mysql.server stop  

mysql.server изменяет местоположение на MySQL
каталог установки, затем вызывает
mysqld_safe . Чтобы запустить сервер как некоторую
конкретного пользователя, добавьте соответствующую опцию пользователя
в группу [mysqld] глобального
/ etc / my.cnf файл опций, как показано далее в
эта секция. (Возможно, вам придется отредактировать
mysql. server , если вы установили двоичный файл
распространение MySQL в нестандартном месте. Измените его на
измените местоположение в соответствующий каталог перед запуском
mysqld_safe . Если вы это сделаете, ваш измененный
версия mysql.server может быть перезаписана, если
вы обновляете MySQL в будущем; сделайте копию вашего отредактированного
версия, которую можно переустановить.)

mysql.server stop останавливает сервер, отправляя
сигнал к нему. Вы также можете остановить сервер вручную,
выполнение mysqladmin shutdown .

Чтобы запускать и останавливать MySQL автоматически на вашем сервере, вы должны
добавьте команды запуска и остановки в соответствующие места в вашем
/ etc / rc * файлов:

  • Если вы используете пакет RPM сервера Linux
    ( MySQL-сервер- ВЕРСИЯ . об / мин ),
    или установка собственного пакета Linux,
    mysql.server сценарий может быть установлен в
    каталог /etc/init.d с именем
    mysqld или mysql .
    См. Установка MySQL в Linux с использованием пакетов RPM от Oracle, чтобы узнать больше.
    информация о пакетах Linux RPM.

  • Если вы устанавливаете MySQL из исходного дистрибутива или используете
    двоичный формат распространения, который не устанавливается
    MySQL.сервер автоматически, вы можете
    установить скрипт вручную. Его можно найти в
    support-files Каталог в MySQL
    каталог установки или в дереве исходных текстов MySQL. Скопируйте
    скрипт в каталог /etc/init.d
    с именем mysql и сделайте его
    исполняемый файл:

      cp mysql. server /etc/init.d/mysql
    chmod + x /etc/init.d/mysql  

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

      chkconfig - добавить mysql  

    В некоторых системах Linux следующая команда также кажется
    необходимо полностью включить mysql
    сценарий:

      chkconfig - уровень 345 MySQL на  
  • Во FreeBSD сценарии запуска обычно должны быть
    /usr/local/etc/rc.d/ . Установите
    MySQL.сервер скрипт как
    /usr/local/etc/rc.d/mysql.server.sh с до
    включить автоматический запуск. RC (8)
    на странице руководства указано, что сценарии в этом каталоге
    выполняется, только если их базовое имя совпадает с
    * . sh шаблон имени файла оболочки. Любой другой
    файлы или каталоги, присутствующие в каталоге, являются
    молча игнорируется.

  • В качестве альтернативы предыдущей настройке некоторые рабочие
    системы также используют / etc / rc.местный или
    /etc/init.d/boot.local для запуска
    дополнительные услуги при запуске. Чтобы запустить MySQL с помощью этого
    метод, добавьте команду, подобную следующей, к
    соответствующий файл запуска:

      / bin / sh -c 'cd / usr / local / mysql; ./bin/mysqld_safe --user = mysql & ' 
  • Для других систем обратитесь к вашей операционной системе
    документацию, чтобы узнать, как установить сценарии запуска.

mysql.server считывает параметры из
[mysql.server] и
[mysqld] разделов файлов опций. Для
обратная совместимость, также читается
[mysql_server] разделов, но должны быть текущими
вы должны переименовать такие разделы в
[сервер mysql] .

Вы можете добавить параметры для mysql.server в
файл global /etc/my.cnf .Типичный
my.cnf Файл может выглядеть так:

  [mysqld]
datadir = / usr / локальный / mysql / var
сокет = / var / tmp / mysql.sock
порт = 3306
пользователь = MySQL
[mysql.server]
basedir = / usr / local / mysql  

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

Таблица 4. 2 Параметры файла параметров mysql.server

Название опции Описание Тип
на основе Путь к каталогу установки MySQL Имя каталога
datadir Путь к каталогу данных MySQL Имя каталога
pid-файл Файл, в который сервер должен записывать свой идентификатор процесса Имя файла
тайм-аут запуска службы Как долго ждать запуска сервера Целое число

  • на основе ir = dir_name

    Путь к каталогу установки MySQL.

  • datadir = dir_name

    Путь к каталогу данных MySQL.

  • pid-file = имя_файла

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

    Если этот параметр не указан, mysql.server
    использует значение по умолчанию
    имя_хоста .pid .
    Значение файла PID передано в mysqld_safe
    отменяет любое значение, указанное в
    [mysqld_safe] группа файлов опций. Так как
    mysql.server читает
    [mysqld] файловая группа параметров, но не
    [mysqld_safe] group, вы можете убедиться, что
    mysqld_safe получает то же значение, когда
    вызывается из mysql. сервер , как при вызове
    вручную поставив тот же pid-файл
    установка в [mysqld_safe] и
    [mysqld] групп.

  • тайм-аут запуска службы = секунд

    Как долго в секундах ждать подтверждения сервера
    запускать. Если сервер не запускается в течение этого времени,
    MySQL.сервер завершает работу с ошибкой. В
    значение по умолчанию — 900. Значение 0 означает, что вообще не ждать.
    для запуска. Отрицательные значения означают ждать вечно (нет
    тайм-аут).

MySQL :: Справочное руководство MySQL 8.0 :: 13.7.8.8 RESTART Заявление

13.7.8.8 Заявление о перезапуске
  ПЕРЕЗАПУСК  

Этот оператор останавливает и перезапускает сервер MySQL. Это требует
привилегия SHUTDOWN .

Одно использование RESTART — это когда он
невозможно или удобно получить доступ из командной строки к
Сервер MySQL на хосте сервера, чтобы перезапустить его. Например,
НАБОР
PERSIST_ONLY
можно использовать во время выполнения для создания
изменения конфигурации системных переменных, которые могут быть установлены только
при запуске сервера, но сервер все равно должен быть перезапущен для
эти изменения вступят в силу. В
RESTART Оператор предоставляет способ
сделать это из клиентских сеансов, не требуя
доступ из командной строки на хосте сервера.

Примечание

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

Успешная операция RESTART
требует, чтобы mysqld работал в
среда, в которой есть процесс мониторинга для обнаружения
завершение работы сервера для перезапуска:

  • При наличии процесса мониторинга,
    RESTART причины
    mysqld для завершения так, чтобы
    процесс мониторинга может определить, что он должен начать новый
    экземпляр mysqld .

  • Если процесс мониторинга отсутствует,
    RESTART завершается с ошибкой.

Эти платформы обеспечивают необходимую поддержку мониторинга для
RESTART заявление:

  • Windows, когда mysqld запускается как
    Служба Windows или автономная. ( mysqld
    разветвляется, и один процесс действует как монитор для другого, что
    действует как сервер. )

  • Unix и Unix-подобные системы, использующие systemd или
    mysqld_safe для управления
    mysqld .

Чтобы настроить среду мониторинга таким образом, чтобы
mysqld включает
RESTART заявление:

  1. Установите среду MYSQLD_PARENT_PID
    в значение идентификатора процесса, который
    запускает mysqld , перед запуском
    mysqld .

  2. Когда mysqld выполняет завершение работы из-за
    использование инструкции RESTART ,
    он возвращает код выхода 16.

  3. Когда процесс мониторинга обнаруживает код выхода 16, он
    снова запускает mysqld . В противном случае он выходит.

Вот минимальный пример, реализованный в
Оболочка bash :

  #! / Bin / bash

экспорт MYSQLD_PARENT_PID = $$

экспорт MYSQLD_RESTART_EXIT = 16

пока правда; делать
  bin / mysqld  параметры mysqld здесь 
  если [$? -ne $ MYSQLD_RESTART_EXIT]; тогда
    перерыв
  фи
выполнено  

В Windows разветвление, используемое для реализации
RESTART определяет
серверный процесс, к которому присоединиться для отладки труднее.К
облегчить это, запустив сервер с
--gdb подавляет разветвление, в
в дополнение к другим его действиям, сделанным для настройки отладки
среда. В настройках без отладки
- no-monitor можно использовать для
единственная цель — подавить разветвление процесса монитора. Для
сервер запущен либо с --gdb
или - no-monitor , выполнение
RESTART заставляет сервер
просто выйдите без перезапуска.

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

ubuntu — проблема запуска и перезапуска mysql на ubuntu 16.04 сервер

Я установил mysql 5.7, но потом обнаружил, что мне нужен mysql 5.6, поэтому я удалил все связанные с mysql пакеты с

  apt-get remove --purge mysql *
  

, поэтому его удалили. тогда я выдал:

  apt-get установить mysql-server-5.6 mysql-client-5.6
  

, так что упомянутые пакеты были установлены.
но он не начинает использовать systemctl start mysql или service mysql start или даже перезапуск. результат такой:

  перезапуск службы MySQL
или же
запуск службы mysql
или же
systemctl перезапустить mysql
или же
systemctl запустить mysql
  

возвращает:

  Задание mysql.service завершилось неудачно, так как процесс управления завершился с кодом ошибки. См. "Systemctl status mysql.service" и "journalctl -xe" для подробностей.
  

но

  статус systemctl mysql
  

возвращает

  mysql.service - LSB: запуск и остановка демона сервера базы данных mysql.
   Загружено: загружено (/ etc / init.d / mysql; Плохо; предустановка поставщика: включена)
   Активно: не удалось (Результат: код выхода) с понедельника 2017-04-10 13:24:00 EDT; 29с назад
     Документы: man: systemd-sysv-generator (8)
  Процесс: 15820 ExecStart = / etc / init.d / mysql start (code = exited, status = 1 / FAILURE)
 Основной PID: 1323 (код = выход, статус = 0 / УСПЕШНО)

10 апреля 13:23:30 сервер mysqld [15926]: 2017-04-10 13:23:30 15925 [Примечание] InnoDB: сжатые таблицы используют zlib 1. 2.8
10 апреля, 13:23:30 сервер mysqld [15926]: 2017-04-10 13:23:30 15925 [Примечание] InnoDB: использование встроенного в Linux AIO
10 апреля, 13:23:30 сервер mysqld [15926]: 2017-04-10 13:23:30 15925 [Примечание] InnoDB: Использование инструкций crc32 процессора
10 апреля, 13:23:30 сервер mysqld [15926]: 2017-04-10 13:23:30 15925 [Примечание] InnoDB: инициализация пула буферов, размер = 128.0M
10 апреля, 13:23:30 сервер mysqld [15926]: 2017-04-10 13:23:30 15925 [Примечание] InnoDB: завершена инициализация пула буферов
10 апр, 13:24:00 сервер mysql [15820]: ... сбой!
10 апр, 13:24:00 сервер systemd [1]: mysql.service: процесс управления завершен, код = завершен, статус = 1
10 апреля, 13:24:00 сервер systemd [1]: не удалось запустить LSB: запустить и остановить демон сервера базы данных mysql.
10 апр, 13:24:00 сервер systemd [1]: mysql.service: Устройство вошло в состояние ошибки.
10 апр, 13:24:00 сервер systemd [1]: mysql.service: Ошибка с результатом «код выхода». 

что такое Не удалось запустить LSB: запустить и остановить демон сервера базы данных mysql.
перед установкой 5.6 версия 5.7 работала нормально, но теперь она такая.

, /var/log/mysql/errors.log пуст, а это последние строки / var / log / syslog

  10 апреля 13:23:30 сервер mysqld: 2017-04-10 13:23:30 15925 [Примечание] InnoDB: завершена инициализация пула буферов
10 апр, 13:23:30 сервер mysqld_safe: mysqld из файла pid / var / lib / mysql / server.pid закончился
10 апреля 13:24:00 сервер /etc/init.d/mysql[16277]: 0 процессов живы и '/ usr / bin / mysqladmin --defaults-file = / etc / mysql / debian.cnf ping' привело к
10 апреля 13:24:00 сервер /etc/init.d/mysql[16277]: # 007 / usr / bin / mysqladmin: не удалось подключиться к серверу на локальном хосте
10 апреля 13:24:00 сервер /etc/init.d/mysql[16277]: ошибка: 'Не удается подключиться к локальному серверу MySQL через сокет' /var/run/mysqld/mysqld.sock '(2)'
10 апреля 13:24:00 сервер /etc/init.d/mysql[16277]: Убедитесь, что mysqld запущен и сокет: '/ var / run / mysqld / mysqld. носок существует!
10 апреля 13:24:00 сервер /etc/init.d/mysql[16277]:
10 апр, 13:24:00 сервер mysql [15820]: ... сбой!
10 апр, 13:24:00 сервер systemd [1]: mysql.service: процесс управления завершен, код = завершен, статус = 1
10 апреля, 13:24:00 сервер systemd [1]: не удалось запустить LSB: запустить и остановить демон сервера базы данных mysql.
10 апр, 13:24:00 сервер systemd [1]: mysql.service: Устройство вошло в состояние ошибки.
10 апр, 13:24:00 сервер systemd [1]: mysql.service: Ошибка с результатом «код выхода».
  

вывод mysqld_safe

  170410 13:33:28 mysqld_safe Запись в системный журнал.170410 13:33:28 mysqld_safe Запуск демона mysqld с базами данных из / var / lib / mysql
170410 13:33:28 mysqld_safe mysqld из файла pid /var/lib/mysql/server.pid завершился
  

а это мой /etc/mysql/my.cnf а там нет /etc/my.cnf

  #
# Файл конфигурации сервера базы данных MySQL.
#
# Вы можете скопировать это в один из:
# - "/etc/mysql/my.cnf" для установки глобальных параметров,
# - "~ / .my.cnf" для установки пользовательских опций.
#
# Можно использовать все длинные опции, которые поддерживает программа.# Запустить программу с помощью --help, чтобы получить список доступных опций, и с помощью
# --print-defaults, чтобы увидеть, что он действительно понимает и использует.
#
# Пояснения см.
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

# Это будет передано всем клиентам mysql
# Сообщалось, что пароли должны быть заключены в галочки / кавычки
# особенно если они содержат символы "#" ...
# Не забудьте отредактировать /etc/mysql/debian.cnf при изменении местоположения сокета.

# Вот записи для некоторых конкретных программ
# Следующие значения предполагают, что у вас есть как минимум 32M RAM

! includeir / etc / mysql / conf.d /
  

Запуск

— сбой при запуске сервера mysql

В моем случае это была проблема с местом.
Проверьте, достаточно ли у вас места.

из /var/log/mysql/error.log Я получил подсказки из двух строк:

  2018-08-04T05: 25: 29.519139Z 0 [ОШИБКА] InnoDB: запись в файл ./ibtmp1failed по смещению 3145728, должно было быть записано 1048576 байт, было записано только 704512 $
2018-08-04T05: 25: 29.519145Z 0 [ОШИБКА] InnoDB: номер ошибки 28 означает «На устройстве не осталось места»
  

Я понял, что это проблема с пространством.

  корень @ xxx: / home / user1 # df -h
Используемый размер файловой системы Доступность% Установлено на
udev 477M 0 477M 0% / dev
tmpfs 100M 11M 89M 11% / запуск
/ dev / mapper / server1 - osticket - vg-root 8.3G 7.9G 0100% /
tmpfs 497M 0 497M 0% / dev / shm
tmpfs 5.0M 0 5.0M 0% / запуск / блокировка
tmpfs 497M 0 497M 0% / sys / fs / cgroup
/ dev / vda1 472M 467M 0100% / загрузка
tmpfs 100M 0 100M 0% / run / user / 1000
  

Отсюда я мог видеть, что на виртуальном сервере не хватает места / dev / mapper / server1 - osticket - vg-root 8.3G 7.9G 0100% / . И я подумал либо о миграции, либо о расширении виртуального диска, но решил сначала удалить ненужные файлы.

Итак, пришлось очистить кеш и ненужные файлы:

  # apt-get clean
# apt-get -f autoremove
  

Затем не забудьте после этого удалить поврежденные файлы журнала mysql. Они будут сгенерированы снова при перезапуске mysql

.

  # служба mysql stop
#cd / var / lib / mysql
#rm ib_logfile *
#service mysql start
  

Проверьте службу сервера mysql и, вероятно, она работает.

  root @ server1-osticket: / var / lib / mysql # статус службы mysql
● mysql.сервис - Сервер сообщества MySQL
   Загружено: загружено (/lib/systemd/system/mysql.service; включено; предустановка поставщика: включено)
   Активен: активен (работает) с сб 2018-08-04 23:07:24 WAT; 7мин назад
  Процесс: 1559 ExecStartPost = / usr / share / mysql / mysql-systemd-start post (code = exited, status = 0 / SUCCESS)
  Процесс: 1549 ExecStartPre = / usr / share / mysql / mysql-systemd-start pre (код = завершен, статус = 0 / УСПЕХ)
 Основной PID: 1558 (mysqld)
    Заданий: 29
   Память: 280,3 МБ
      Процессор: 589 мс
   CGroup: /system.slice/mysql.услуга
           └─1558 / usr / sbin / mysqld

04 августа, 23:07:19 server1-osticket systemd [1]: Запуск Сервера сообщества MySQL ...
04 августа, 23:07:24 server1-osticket systemd [1]: запущен сервер сообщества MySQL.
корень @ server1-osticket: / var / lib / mysql #
  

Дело закрыто.
Я надеюсь, что это помогает.

Как перезапустить, остановить и запустить сервер MySQL или MariaDB в Linux

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


Чтобы перезапустить сервер MySQL или MariaDB в Linux, используйте одну из следующих команд:

  sudo service mysql перезапуск  
  sudo service mysqld перезапуск  
  sudo /etc/init.d/mysql перезапуск  
  sudo /etc/init.d/mysqld перезапуск  
  sudo systemctl перезапустить mysqld  
  sudo /usr/local/etc/rc.d/mysql-server перезапуск  

service mysql restart


Чтобы остановить сервер MySQL или MariaDB в Linux, используйте одну из следующих команд:

  служба sudo mysql stop  
  служба sudo mysqld stop  
  sudo / etc / init.d / mysql stop  
  судо /etc/init.d/mysqld stop  
  sudo systemctl остановить mysqld  
  sudo /usr/local/etc/rc.d/mysql-server stop  

service mysql stop


Чтобы запустить сервер MySQL или MariaDB в Linux, используйте одну из следующих команд:

  служба sudo mysql start  
  служба sudo mysqld start  
  Судо /etc/init.d/mysql start  
  sudo / etc / init.d / mysqld start  
  sudo systemctl запуск mysqld  
  sudo /usr/local/etc/rc.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *