我在安装 mysql 时遇到了问题,无法独自解决。首先,我尝试使用此命令删除并清除旧文件
sudo apt-get remove --purge mysql
也尝试过
sudo apt-get remove --purge mysql*
和
sudo apt-get remove --purge mariadb*
所有 3 个命令都返回相同的输出...
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
dbconfig-mysql : Depends: mysql-client but it is not going to be installed or
mariadb-client but it is not going to be installed or
virtual-mysql-client
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
所以我运行了建议的操作apt-get -f install
,得到了
$ sudo apt-get -f install
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
The following additional packages will be installed:
mysql-server-5.7
Suggested packages:
mailx tinyca
The following NEW packages will be installed:
mysql-server-5.7
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
Need to get 0 B/2,597 kB of archives.
After this operation, 48.3 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Preconfiguring packages ...
(Reading database ... 300885 files and directories currently installed.)
Preparing to unpack .../mysql-server-5.7_5.7.16-0ubuntu0.16.04.1_amd64.deb ...
Aborting downgrade from (at least) 10.0 to 5.7.
If are sure you want to downgrade to 5.7, remove the file
/var/lib/mysql/debian-*.flag and try installing again.
dpkg: error processing archive /var/cache/apt/archives/mysql-server-5.7_5.7.16-0ubuntu0.16.04.1_amd64.deb (--unpack):
subprocess new pre-installation script returned error exit status 1
Errors were encountered while processing:
/var/cache/apt/archives/mysql-server-5.7_5.7.16-0ubuntu0.16.04.1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
我运行 时得到相同的输出apt upgrade -f
。这是systemctl status mysql.service -l
$ systemctl status mysql.service -l
● mysql.service
Loaded: not-found (Reason: No such file or directory)
Active: failed (Result: exit-code) since Wed 2016-11-23 07:32:55 EET; 58min ago
Nov 23 07:32:24 stan systemd[1]: Starting LSB: Start and stop the mysql database server daemon...
Nov 23 07:32:24 stan mysql[7818]: * Starting MariaDB database server mysqld
Nov 23 07:32:55 stan mysql[7818]: ...fail!
Nov 23 07:32:55 stan systemd[1]: mysql.service: Control process exited, code=exited status=1
Nov 23 07:32:55 stan systemd[1]: Failed to start LSB: Start and stop the mysql database server daemon.
Nov 23 07:32:55 stan systemd[1]: mysql.service: Unit entered failed state.
Nov 23 07:32:55 stan systemd[1]: mysql.service: Failed with result 'exit-code'.
我尝试过的另一件事是删除mysql-server
它然后再次安装,仍然出现同样的错误。
有人能帮忙解决这个问题吗?我不知道该如何解决它。
更新输出lsb_release -a
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.1 LTS
Release: 16.04
Codename: xenial
更新2:输出sudo apt install mysql-server mysql-client
$ sudo apt install mysql-server mysql-client
Reading package lists... Done
Building dependency tree
Reading state information... Done
mysql-client is already the newest version (5.7.16-0ubuntu0.16.04.1).
mysql-server is already the newest version (5.7.16-0ubuntu0.16.04.1).
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
mysql-server : Depends: mysql-server-5.7 but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
答案1
我们执行以下命令来解决上述问题:
- 通过执行命令获取系统上安装的 MySQL 包列表
sudo dpkg -l | grep mysql
- 通过执行命令删除上面显示的软件包
sudo apt-get --purge autoremove <packages from the step 1>
- 删除
/var/lib/mysql
- 尝试再次安装 mysql。它应该可以解决您的问题。
答案2
我不知道为什么,我尝试了这些命令大约一个小时,直到我才
export TERM=xterm
然后它就可以与 apt install 一起工作了。
编辑:实际上现在我知道原因了。可能是在安装过程中,它试图调出可视界面询问“安装软件包维护者的版本”等,而某些 Ubuntu 服务器上的默认 TERM 无法提供该功能,因此安装会抛出错误。使用 Xterm 可以解决这个问题。