Я обычно вручную устанавливаю тему Faenza (на самом деле, она может быть даже быстрее, чем добавление всех репозиториев и т. д.), потому что это облегчает
изменение темы: например, автор недавно изменил значок браузера хрома на новый уродливый (некоторым может показаться, что это лучше, хотя), а также некоторые другие значки выглядят уродливыми в systray (потому что они окрашены и не соответствуют остальной теме - у меня есть их изменено) добавлять значки или даже комбинировать темы (например, другая отличная тема - это UBO, но вы можете сохранить иконки в панели задач от Faenza) восстановить все изменения, которые вы делали, когда вам нужно переустановить систему или обновить ее и т. д.... также, мне обычно просто любопытно, что внутри ...
Итак, создайте папку, например, ~ / Темы / Иконки. Перейдите на страницу gnome-look.org, в левом меню нажмите «Все», затем выберите «Самый высокий рейтинг»: вы увидите первую самую популярную вещь среди всего, что у них есть, это тема темы Faenza Icon версии 0.9.2 (последняя версия).
Загрузите его, распакуйте, вы увидите четыре папки внутри для 4 различных оттенков значков systray (светлые, темные, темные, темные). Каждая папка представляет собой тему значка: она содержит index.theme, которая описывает все подпапки с значками.
Чтобы установить одну из этих четырех тем, просто сжимайте соответствующую папку (щелкните правой кнопкой мыши по ней - должна быть опция для сжатия), затем откройте «Внешний вид» и переместите с помощью мыши ваш архив в окно «Внешний вид». Это
. Но теперь у вас есть все, что вам нужно, с темой, добавлять / изменять значки , объединить темы и т. д. Более того, всякий раз, когда вы переустанавливаете (или обновляете) систему, все внесенные вами изменения будут ждать вас прямо там, так что вы вернетесь со своей любимой иконкой в минуту. [!d10 ]
Инструкции @ 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