在Ubuntu中安装和删除MySQL时遇到问题


26

我在安装或删除ubuntu15.04中部分安装的mysql-server-5.6时遇到问题。我得到的错误是

$ 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)

有人可以帮我吗?


更好的是可以删除,希望干净重新安装会很好。
vembutech

我尝试了此过程,但仍然遇到问题,即我可以卸载或重新安装mysql服务器
Shameerariff

1
我竭尽全力找出问题的原因。我从apt状态文件中删除了数据,并更新了apt,在那我注意到系统遇到libgcc1 libc6问题。我正在尝试解决问题,将根据我的发现继续发布状态。
Shameerariff

Answers:


55

尝试进行清除,然后重新安装。

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

更新04.09.2018:
如果由于MySQL进程处于活动状态而导致在卸载/安装过程中遇到问题,则可以先尝试此操作,然后再尝试以下操作:
sudo kill $(pgrep mysql)


我尝试了此过程,但仍然遇到问题,即我可以卸载或重新安装mysql服务器
Shameerariff

原始说明删除了元软件包,该元软件包是禁止操作的。新编辑的说明适用于16.04。
mrm

在基本OS上为我工作。
MChaker '16

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上找到


这是比有经验的解决方案更好的答案,因为它无需使用蛮力方法即可解决实际问题。
devius

就我而言,touch /etc/mysql/my.cnf.fallback让我摆脱了这个问题。
oalders '18

9

清除/重新安装对我也不起作用。我发现以下“解决方案”:

我找不到mysql.cnf.fallbackmysql-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-server(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-重新安装mysql-common

  1. 清除mysql-common

apt-get purge mysql-common


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但我又不需要了。


这正是我的问题。这为我解决了。
Dave Kincaid

0

正如charneykaye在评论中指出的那样,如果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

使用以下命令杀死前三个进程(最后一个是grep调用本身!)

kill -9 6682 8883 7046

然后删除所有mysql相关内容:

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

然后安装:

apt install mysql-server

然后它起作用了。

版本:

  • Mint 18.1(基于Ubuntu)。您将需要替换aptapt-get一些其他版本。

0

我找到了一个简单的解决方案:

第一步: apt-get install mysql-common --reinstall

第二步: apt-get install mysql-server --reinstall

而且有效!


0

在尝试了上述所有答案之后,我可以通过以下方法解决此问题:

须藤rm /etc/rc5.d/S03mysql

然后能够运行:

sudo apt清除mysql服务器mysql服务器5.7 mysql服务器核心5.7

须藤apt-get -f install mysql-server --fix-missing --fix-broken

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.