Вы ничего не пропустили. Эти значки не являются новой по умолчанию, а новой третьей стороной тема, тема темы Faenza. Вы можете захватить их из GNOME-Look или Equinox PPA.
sudo add-apt-repository ppa:tiheum/equinox
sudo apt-get update && sudo apt-get install faenza-icon-theme
Инструкции @ andrew-beerman размещены на правильном пути, хотя они мне не совсем понятны и, кажется, рекомендуют больше, чем это необходимо.
Это шаги, которые я предпринял, чтобы исправить это:
Создайте резервную копию своего my.cnf file в /etc/mysql и удалите или переименуйте егоsudo mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak
Удалите папку /etc/mysql/mysql.conf.d/ с помощью sudo rm -r /etc/mysql/mysql.conf.d/
Убедитесь, что у вас нет файла my.cnf, спрятанного где-то в другом месте (в моем домашнем каталоге!) или в /etc/alternatives/my.cnf используйте sudo find / -name my.cnf
] Резервное копирование и удаление файлов /etc/mysql/debian.cnf (не обязательно, если необходимо, но на всякий случай) sudo mv /etc/mysql/debian.cnf /etc/mysql/debian.cnf.bak
sudo apt purge mysql-server mysql-server-5.7 mysql-server-core-5.7
sudo apt install mysql-server
Если ваш syslog показывает ошибку, такую как «mysqld: Невозможно прочитать dir из /etc/mysql/conf.d/» msgstr "создать символическую ссылку: sudo ln -s /etc/mysql/mysql.conf.d /etc/mysql/conf.d
Затем служба должна начинать с sudo service mysql start. Это заработало!
Инструкции @ andrew-beerman размещены на правильном пути, хотя они мне не совсем понятны и, кажется, рекомендуют больше, чем это необходимо.
Это шаги, которые я предпринял, чтобы исправить это:
Создайте резервную копию своего my.cnf file в /etc/mysql и удалите или переименуйте егоsudo mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak
Удалите папку /etc/mysql/mysql.conf.d/ с помощью sudo rm -r /etc/mysql/mysql.conf.d/
Убедитесь, что у вас нет файла my.cnf, спрятанного где-то в другом месте (в моем домашнем каталоге!) или в /etc/alternatives/my.cnf используйте sudo find / -name my.cnf
] Резервное копирование и удаление файлов /etc/mysql/debian.cnf (не обязательно, если необходимо, но на всякий случай) sudo mv /etc/mysql/debian.cnf /etc/mysql/debian.cnf.bak
sudo apt purge mysql-server mysql-server-5.7 mysql-server-core-5.7
sudo apt install mysql-server
Если ваш syslog показывает ошибку, такую как «mysqld: Невозможно прочитать dir из /etc/mysql/conf.d/» msgstr "создать символическую ссылку: sudo ln -s /etc/mysql/mysql.conf.d /etc/mysql/conf.d
Затем служба должна начинать с sudo service mysql start. Это заработало!
Инструкции здесь исправлены на моем сервере: https://bugs.mysql.com/bug.php?id=72722
Я могу понять, как боль в вашей системе в несовместимом состоянии, но позволяет не беспокойтесь о всей ситуации и сделайте шаг за шагом, чтобы система была чистой. Сначала давайте посмотрим текущее состояние всех пакетов mysql на машине, используя: dpkg -l | grep mysql (Пожалуйста, вставьте вывод, исключая последний столбец). Первый столбец обозначает текущий статус пакета. Вот возможные варианты: ii) Установленный rc) Удаленные конфиг-файлы сохранены (это должно быть состояние всех удаленных пакетов с помощью apt-get remove, которые не удаляют конфигурационные файлы в / etc). Для этого вам нужно будет запустить apt-get purge, пока вы не увидите никаких пакетов в приведенном выше списке. Помните, что некоторые не-mysql-серверные пакеты, такие как python-mysql.connector и python-mysqldb, если они установлены, не нужно удалять, так как они не влияют на эту ситуацию, но если их удалить, это может вызвать проблемы с приложениями, использующими их. Мы обязательно попытаемся повторно посетить наши документы, чтобы узнать, как мы можем защитить пользователей от этой проблемы. Благодарим вас за то, что поделились своими отзывами с нами.В моем случае я мог бы решить проблему, добавив
# Allow log file access
/home/system/var/log/mysql.err rw,
/home/system/var/log/mysql.log rw,
/home/system/var/log/mysql/ r,
/home/system/var/log/mysql/** rw,
в /etc/apparmor.d/local/usr.sbin.mysqld
. Для более подробной информации взгляните на мой ответ (by Christoph'S) в stackoverflow.
Ваше сообщение об ошибке содержит эту строку:
subprocess installed post-installation script returned error exit status 1
Однако это installed post-installation script не упоминается по имени. После долгих переделок я узнал, что его имя (в моем случае) /var/lib/dpkg/info/mysql-server-5.7.postinst.
Откройте этот файл с помощью sudo vi /var/lib/dpkg/info/mysql-server-5.7.postinst или вашего предпочтительного редактора.
Наверху измените строку 3 (или так): set -e на set -x, сохраните файл , (опция -e - это «выход из ошибок», -x означает «явно показать выполненную команду», предположительно)
Запустить sudo dpkg --configure -a --log /tmp/dpkg.log (опция -log необязательна). Вы также можете просто запустить apt upgrade, если вы знаете, что это будет единственный пакет, который будет обновлен.
Теперь вы получаете подробный вывод сценария mysql-server-5.7.postinst bash, и вы можете понять, что не так .
В моем случае он безуспешно пытался (повторно) запустить mysql_upgrade, но это не было необходимо для моей настроенной установки mysql. Я был уверен, что запустил его вручную до, успешно, и все было хорошо.
Итак, я выписал строку 321 (для более старых выпусков mysqld попробуйте строку 281),
#mysql_upgrade --defaults-file=/etc/mysql/debian.cnf || result=$?
и команда, которая потерпела неудачу раньше, sudo apt upgrade (запустите ее снова), завершилась успешно, а dpkg удалил статус ошибки для этого пакета.
Теперь вы можете установить назад set -x - set -e (упомянутый выше). И необязательно раскомментируйте строку mysql-upgrade.
Дополнительная работа может потребоваться, если вы переместили свой раздел данных mysql в нестандартное место. Я переместил мой из /var/lib/mysql/data на другой диск через символическую ссылку. Тогда вам может понадобиться временно удалить символическую ссылку перед манипуляцией сценария postinst. Затем повторно заново создайте его после запуска обновления пакета.
После следующего небольшого обновления версии пакета debian mysqld эта проблема с скриптом /var/lib/dpkg/info/mysql-server-5.7.postinst может появиться снова.
В моем случае с strace я увидел, что / var / run / mysqld / не существует, и mysqld не может создать файл mysqld.sock.
Эти команды решили мою проблему: [ ! d1] mkdir /var/run/mysqld
chown mysql.mysql /var/run/mysqld
chmod 700 /var/run/mysqld
Теперь:
systemctl start mysql
И mysql снова работает:)
У меня была такая же проблема. Я пытался переустановить mysql несколько раз, но не имел успеха.
Я понял, что проблема для меня в том, что еще один процесс mysql уже запущен.
Подробнее:
После того, как я внимательно прочитал журналы в /var/log/mysql/error.log и нашел:
[ERROR] Не удается запустить сервер: привязать к порту TCP / IP: адрес уже используется [ERROR] У вас уже есть другой сервер mysqld, работающий на порту: 3306?Похоже, что другое приложение уже использовало порт.
Я проверил его с помощью ps -aux | grep 3306:
$ ps -aux | grep 3306
milkovs+ 6802 0.0 0.0 16336 1084 pts/19 S+ 21:39 0:00 grep --color=auto 3306
mysql 14706 0.0 0.3 1270192 13916 pts/2 Sl Aug19 0:29 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --skip-grant-tables --log-error=/var/log/mysql/error.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306 --log-syslog=1 --log-syslog-facility=daemon --log-syslog-tag=
И я убил запущенный процесс sudo kill -15 14706
Затем я начал mysql: /etc/init.d/mysql start
Наконец, mysql работает для меня! Надеюсь, это поможет кому-то.
Сегодня у меня такая же проблема, после попытки многих решений я обнаружил, что проблема заключалась в команде sudo systemctl disable mysql.service, которую я использовал для отключения автоматического запуска MySQL, поэтому, чтобы заставить его работать, я снова включил сервер MySQL с помощью команды sudo systemctl enable mysql.service и снова запустить процесс обновления, и он отлично прекратился.
Ни один из ответов на этой странице не работал для меня.
Я перешел на страницу загрузки Oracle, загрузив mysql-apt-config_0.8.8-1_all.deb и установив MySQL из Oracle repo:
sudo dpkg -i mysql-apt-config_0.8.8-1_all.deb
sudo apt update
sudo apt install mysql-server
Инструкции здесь исправлены на моем сервере: https://bugs.mysql.com/bug.php?id=72722
Я могу понять, как боль в вашей системе в несовместимом состоянии, но позволяет не беспокойтесь о всей ситуации и сделайте шаг за шагом, чтобы система была чистой. Сначала давайте посмотрим текущее состояние всех пакетов mysql на машине, используя: dpkg -l | grep mysql (Пожалуйста, вставьте вывод, исключая последний столбец). Первый столбец обозначает текущий статус пакета. Вот возможные варианты: ii) Установленный rc) Удаленные конфиг-файлы сохранены (это должно быть состояние всех удаленных пакетов с помощью apt-get remove, которые не удаляют конфигурационные файлы в / etc). Для этого вам нужно будет запустить apt-get purge, пока вы не увидите никаких пакетов в приведенном выше списке. Помните, что некоторые не-mysql-серверные пакеты, такие как python-mysql.connector и python-mysqldb, если они установлены, не нужно удалять, так как они не влияют на эту ситуацию, но если их удалить, это может вызвать проблемы с приложениями, использующими их. Мы обязательно попытаемся повторно посетить наши документы, чтобы узнать, как мы можем защитить пользователей от этой проблемы. Благодарим вас за то, что поделились своими отзывами с нами.В моем случае я мог бы решить проблему, добавив
# Allow log file access
/home/system/var/log/mysql.err rw,
/home/system/var/log/mysql.log rw,
/home/system/var/log/mysql/ r,
/home/system/var/log/mysql/** rw,
в /etc/apparmor.d/local/usr.sbin.mysqld
. Для более подробной информации взгляните на мой ответ (by Christoph'S) в stackoverflow.
Ваше сообщение об ошибке содержит эту строку:
subprocess installed post-installation script returned error exit status 1
Однако это installed post-installation script не упоминается по имени. После долгих переделок я узнал, что его имя (в моем случае) /var/lib/dpkg/info/mysql-server-5.7.postinst.
Откройте этот файл с помощью sudo vi /var/lib/dpkg/info/mysql-server-5.7.postinst или вашего предпочтительного редактора.
Наверху измените строку 3 (или так): set -e на set -x, сохраните файл , (опция -e - это «выход из ошибок», -x означает «явно показать выполненную команду», предположительно)
Запустить sudo dpkg --configure -a --log /tmp/dpkg.log (опция -log необязательна). Вы также можете просто запустить apt upgrade, если вы знаете, что это будет единственный пакет, который будет обновлен.
Теперь вы получаете подробный вывод сценария mysql-server-5.7.postinst bash, и вы можете понять, что не так .
В моем случае он безуспешно пытался (повторно) запустить mysql_upgrade, но это не было необходимо для моей настроенной установки mysql. Я был уверен, что запустил его вручную до, успешно, и все было хорошо.
Итак, я выписал строку 321 (для более старых выпусков mysqld попробуйте строку 281),
#mysql_upgrade --defaults-file=/etc/mysql/debian.cnf || result=$?
и команда, которая потерпела неудачу раньше, sudo apt upgrade (запустите ее снова), завершилась успешно, а dpkg удалил статус ошибки для этого пакета.
Теперь вы можете установить назад set -x - set -e (упомянутый выше). И необязательно раскомментируйте строку mysql-upgrade.
Дополнительная работа может потребоваться, если вы переместили свой раздел данных mysql в нестандартное место. Я переместил мой из /var/lib/mysql/data на другой диск через символическую ссылку. Тогда вам может понадобиться временно удалить символическую ссылку перед манипуляцией сценария postinst. Затем повторно заново создайте его после запуска обновления пакета.
После следующего небольшого обновления версии пакета debian mysqld эта проблема с скриптом /var/lib/dpkg/info/mysql-server-5.7.postinst может появиться снова.
В моем случае с strace я увидел, что / var / run / mysqld / не существует, и mysqld не может создать файл mysqld.sock.
Эти команды решили мою проблему: [ ! d1] mkdir /var/run/mysqld
chown mysql.mysql /var/run/mysqld
chmod 700 /var/run/mysqld
Теперь:
systemctl start mysql
И mysql снова работает:)
У меня была такая же проблема. Я пытался переустановить mysql несколько раз, но не имел успеха.
Я понял, что проблема для меня в том, что еще один процесс mysql уже запущен.
Подробнее:
После того, как я внимательно прочитал журналы в /var/log/mysql/error.log и нашел:
[ERROR] Не удается запустить сервер: привязать к порту TCP / IP: адрес уже используется [ERROR] У вас уже есть другой сервер mysqld, работающий на порту: 3306?Похоже, что другое приложение уже использовало порт.
Я проверил его с помощью ps -aux | grep 3306:
$ ps -aux | grep 3306
milkovs+ 6802 0.0 0.0 16336 1084 pts/19 S+ 21:39 0:00 grep --color=auto 3306
mysql 14706 0.0 0.3 1270192 13916 pts/2 Sl Aug19 0:29 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --skip-grant-tables --log-error=/var/log/mysql/error.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306 --log-syslog=1 --log-syslog-facility=daemon --log-syslog-tag=
И я убил запущенный процесс sudo kill -15 14706
Затем я начал mysql: /etc/init.d/mysql start
Наконец, mysql работает для меня! Надеюсь, это поможет кому-то.
Сегодня у меня такая же проблема, после попытки многих решений я обнаружил, что проблема заключалась в команде sudo systemctl disable mysql.service, которую я использовал для отключения автоматического запуска MySQL, поэтому, чтобы заставить его работать, я снова включил сервер MySQL с помощью команды sudo systemctl enable mysql.service и снова запустить процесс обновления, и он отлично прекратился.
Ни один из ответов на этой странице не работал для меня.
Я перешел на страницу загрузки Oracle, загрузив mysql-apt-config_0.8.8-1_all.deb и установив MySQL из Oracle repo:
sudo dpkg -i mysql-apt-config_0.8.8-1_all.deb
sudo apt update
sudo apt install mysql-server