На работе мы переместили некоторых людей с компьютеров Windows на Ubuntu. Похвала, которую я слышал больше всего, это то, что Ubuntu работает быстро. Да, обычно есть пара проблем.
У меня была такая же проблема с Ubuntu 15.10 Desktop, и я нашел способ ее исправить:
параметр log_error в файле /etc/mysql/mysql.conf.d/mysqld.cnf был закомментирован. После раскомментирования параметра systemd отключает mysqld без проблем.
Ваша проблема - thread_pool_size. Если это намного больше, чем количество ядер / потоков, вы не сможете нормально завершить работу, если не используете команду mysqladmin shutdown.
Например: у вас есть 2 ядра CPU с 4 потоками. Если вы установите его 1-4 - он будет работать нормально. Если вы установите его на 16, как указано во многих «высокопроизводительных» блогах, он будет потерян.
У меня была аналогичная проблема с тем, что mysql / mariadb не остановился, когда был проинструктирован systemd, либо при выключении, либо вызван вручную с помощью sudo service mysql stop.
В моем случае я выполняю двойную загрузку Ubuntu / Windows в UEFI, и эти ОС интерпретируют разное время аппаратного обеспечения, поэтому обе ОС синхронизируются с серверами времени Интернета при запуске.
MySQL (и Mariadb) не останавливался, если аппаратное время изменилось во время его работы.
Вам нужно отложить запуск MySQL до истечения периода времени. В идеале это можно было бы сделать, введя временную зависимость от mysql с After: time-sync, но это не сработало для меня.
Решение, которое сработало для меня (вы можете заменить mysql mariadb на тот же эффект):
Отключить mysql с помощью sudo systemctl disabled mysql.service Создать сценарий (убедитесь, что он выполним), который запустится mysql после некоторой задержки /usr/bin/delay_mysql с содержимым:#!/bin/sh
sleep 30s
/etc/init.d/mysql start
Создайте службу systemd для запуска вашего нового скрипта /etc/systemd/system/delay_mysql.service с содержимым: [Unit]
Description=Delay start of MySQL / MariaDB
[Service]
Type=oneshot
ExecStart=/usr/bin/delay_mysql
[Install]
WantedBy=multi-user.target
Зарегистрируйте свою новую услугу с помощью sudo systemctl enable delay_mysql.service . Это приведет к скрипт для работы на многопользовательских уровнях, что на Ubuntu составляет 3,4,5.
Просто при копировании mysql.service вам нужно будет выполнить chmod после.
cp /lib/systemd/system/mysql.service /etc/systemd/system/
chmod 755 /etc/systemd/system/mysql.service
Этот пользователь используется для завершения работы MySQL и других функций. После обновления MySQL может случиться так, что между файлом и базой данных существует несоответствие пропуска. Это также может произойти, если вы переместите базу данных из одного MySQL в другой. Если вы будете импортировать все базы данных и пользователей из других MySQL на другой машине, вам нужно повторно синхронизировать ваш пользователь обслуживания (debian-sys-maint) пароль
Вы должны сделать. : проверить текущий пароль в Ubuntu / Debian файл:
sudo cat /etc/mysql/debian.cnf
# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host = localhost
user = debian-sys-maint
password = n4aSHUP04s1J32X5
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
user = debian-sys-maint
password = n4aSHUP04s1J32X5
socket = /var/run/mysqld/mysqld.sock
basedir = /usr
Вы можете увидеть свой пароль, система будет использовать здесь
: password = n4aSHUP04s1J32X5
Следующий шаг заключается в обновлении MySQL с тем же паролем
: Вход в MySQL: [d4 ]
~$ mysql -u root -p
Введите пароль для доступа к MySQL
mysql> GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'n4aSHUP04s1J32X5';**
После того, что не больше проблем с выключением, не 10 минут ожидания, никаких проблем с установкой приложений, которые используют этот обслуживание счета, как PHPMyAdmin. [ ! d6]
UPDATE: К сожалению, это не решило проблему. Это сделало его случайным - иногда я могу остановить службу без проблем в другой раз, когда она замерзнет на остановке службы.