Возникли проблемы при установке и удалении MySQL в Ubuntu

26

У меня проблемы с установкой или удалением частично установленного mysql-server-5.6 в Ubuntu15.04. Ошибка, которую я получаю, была

$ sudo apt-get -f install 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  mysql-server-5.6
The following packages will be upgraded:
  mysql-server-5.6
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
22 not fully installed or removed.
Need to get 0 B/5,501 kB of archives.
After this operation, 50.8 MB of additional disk space will be used.
Do you want to continue? [Y/n] 
Preconfiguring packages ...
Setting up mysql-common (5.6.24-0ubuntu2) ...
update-alternatives: error: alternative path                 /etc/mysql/my.cnf.fallback doesn't exist
dpkg: error processing package mysql-common (--configure):
 subprocess installed post-installation script returned error exit status 2
Errors were encountered while processing:
 mysql-common
localepurge: Disk space freed in /usr/share/locale: 0 KiB
localepurge: Disk space freed in /usr/share/man: 0 KiB
localepurge: Disk space freed in /usr/share/gnome/help: 0 KiB
localepurge: Disk space freed in /usr/share/omf: 0 KiB
localepurge: Disk space freed in /usr/share/doc/kde/HTML: 0 KiB

Total disk space freed by localepurge: 0 KiB

E: Sub-process /usr/bin/dpkg returned an error code (1)

Может ли кто-нибудь помочь мне в этом?

Shameerariff
источник
Лучше можно удалить и, надеюсь, чистая переустановка будет в порядке, я думаю.
vembutech
Я пробовал этот процесс, но у меня есть проблема, т.е. я не могу удалить или переустановить сервер MySQL
Shameerariff
1
Я старался изо всех сил, чтобы выяснить причину проблемы. Я удалил данные из файла состояния apt и обновил apt, где заметил, что система испытывает проблему с libgcc1 libc6. Я пытаюсь решить проблему. Сохраню пост статус, основываясь на моих выводах.
Shameerariff

Ответы:

55

Попробуйте выполнить очистку, затем переустановите.

sudo apt-get remove --purge mysql-\*
sudo apt-get install mysql-server mysql-client

Обновление 04.09.2018:
если у вас есть проблемы с удалением / установкой, потому что процесс MySQL активен, вы можете сначала попробовать это, затем выше:
sudo kill $(pgrep mysql)

sdkks
источник
Я пробовал этот процесс, но у меня есть проблема, т.е. я не могу удалить или переустановить сервер MySQL
Shameerariff
Оригинальные инструкции убрали метапакет, который был запрещён. Новые отредактированные инструкции работают с 16.04.
mrm
Работал у меня на элементарной ОС.
MChaker
2
Это сработало для меня только после того, как я проверил ps -aef | grep mysqlи отправил сигнал уничтожения всем запущенным mysqld.
Чарни Кей
12

Очень простое решение, которое мне (linux noob) пришлось выкопать ... это создать файл.

nano /etc/mysql/my.cnf.fallback

и заполните его содержимым по умолчанию из пакета mysql-common 5.7.11-0ubuntu6.

#
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
# 
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

# This will be passed to all mysql clients
# It has been reported that passwords should be enclosed with ticks/quotes
# escpecially if they contain "#" chars...
# Remember to edit /etc/mysql/debian.cnf when changing the socket location.

# Here is entries for some specific programs
# The following values assume you have at least 32M ram

!includedir /etc/mysql/conf.d/

находится здесь на apt-browse.org

user636300
источник
Это лучший ответ, чем принятый, потому что он решает реальную проблему без использования метода грубой силы.
devius
В моем случае я touch /etc/mysql/my.cnf.fallbackполучил решение проблемы.
oalders
9

Очистка / переустановка также не работает для меня. Я нашел следующее «решение»:

Я не смог найти в mysql.cnf.fallbackсписке «предоставленные файлы» для mysql-server-5.6/ mysql-client-5.6или какой-либо дополнительной информации о файле.

Я скопировал /etc/mysql/my.cnfв /etc/mysql/my.cnf.fallback(предполагаю , что это было бы сравнительно менее важным «резервный» конфигурационный файл);

/etc/mysql/my.cnfявляется символической ссылкой, так что ls /etc/mysqlтеперь показывает:

 my.cnf.fallback -> /etc/alternatives/my.cnf
 my.cnf -> /etc/alternatives/my.cnf

Затем установка пакета завершилась без ошибок (поскольку, предположительно, проблема «не существует» была «решена»).

Я не сталкивался с какими-либо побочными эффектами (пока).

Редактор джунглей
источник
Это звучит замечательно, но вы можете объяснить причину проблемы, это было бы полезно для других.
Shameerariff
5

У меня была такая же проблема при попытке очистить MySQL-сервер (5.7.14).

В случае, если файлы my.cnf * отсутствуют, вы можете переустановить пакет mysql-common , а после этого вы можете удалить оба ( mysql-server & mysql-common )

Эти файлы my.cnf * относятся к пакету mysql-common (см. Ниже):

$ dpkg -L mysql-common | grep cnf
/etc/mysql/my.cnf.fallback
/etc/mysql/conf.d/mysql.cnf


1. Переустановите mysql-common

apt-get install --reinstall mysql-common

  1. Чистка mysql-common

apt-get purge mysql-common

ivanleoncz
источник
1

Я проверил свою /etc/mysql/папку и обнаружил, что она полностью пуста, кроме пустой подпапки conf.d.

cd /etc/
# you need to delete the empty mysql folder otherwise the ln below creates the link inside the existing mysql folder
sudo rm -r mysql
sudo ln -s ./mysql.bak/ mysql

тогда (любезно этой ссылки эта ссылка )

sudo dpkg --configure -a

и теперь все выглядит хорошо.

Ссылка выше также упоминает, --force-dependsно мне это не нужно. Это также упоминает, apt-get -f installно я опять не нуждался в этом.

северо-Bradley
источник
Это была именно моя проблема. Это исправило это для меня.
Дэйв Кинкейд
0

Как отметил Чарнейкай в комментариях, этот подход может потерпеть неудачу, если mysqlна заднем плане есть какие-то процессы. Я использовал:

emil-mint-desktop ~ # ps -aef | grep mysql
root      6682     1  0 16:45 ?        00:00:00 sudo mysqld_safe --skip-grant-tables
root      6683  6682  0 16:45 ?        00:00:00 /bin/sh /usr/bin/mysqld_safe --skip-grant-tables
mysql     7046  6683  0 16:45 ?        00:00:01 /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=
root     21046  9812  0 17:32 pts/5    00:00:00 grep --color=auto mysql

Уничтожил первые 3 процесса (последний - сам grepвызов!), Используя:

kill -9 6682 8883 7046

Затем удалите все, что mysqlсвязано:

apt remove --purge mysql-\*
apt autoremove
apt autoclean

и затем установите:

apt install mysql-server

Тогда это сработало.

Версии:

  • Mint 18.1 (на основе Ubuntu). Вам нужно будет заменить aptна apt-getнекоторые другие версии.
Deleet
источник
0

Я нашел простое решение для этого:

Первый шаг: apt-get install mysql-common --reinstall

Второй шаг: apt-get install mysql-server --reinstall

И это работает!

alefen
источник
0

Попробовав все ответы выше, я смог решить эту проблему с помощью:

sudo rm /etc/rc5.d/S03mysql

Затем смог запустить:

sudo apt purge mysql-server mysql-server-5.7 mysql-server-core-5.7

sudo apt-get -f установить mysql-сервер --fix-missing --fix-broken

Кан завоеватель
источник