我在 Ubuntu 18.04 上,我正在安装 Mysql,
我输入:
sudo apt-get install mysql-server
我收到了这个,但最后有一个错误:
Reading package lists... Done
Building dependency tree
Reading state information... Done
mysql-server is already the newest version (5.7.28-0ubuntu0.18.04.4).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
2 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
Setting up mysql-server-5.7 (5.7.28-0ubuntu0.18.04.4) ...
/var/lib/dpkg/info/mysql-server-5.7.postinst: line 191: /usr/share/mysql-common/configure-symlinks: No such file or directory
dpkg: error processing package mysql-server-5.7 (--configure):
installed mysql-server-5.7 package post-installation script subprocess returned error exit status 127
dpkg: dependency problems prevent configuration of mysql-server:
mysql-server depends on mysql-server-5.7; however:
Package mysql-server-5.7 is not configured yet.
dpkg: error processing package mysql-server (--configure):
dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
Errors were encountered while processing:
mysql-server-5.7
mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)
附加信息:
当我输入:apt-cache policy mysql-common
我得到这样的回复:
mysql-common:
Installed: 1:10.4.11+maria~bionic
Candidate: 1:10.4.11+maria~bionic
Version table:
*** 1:10.4.11+maria~bionic 100
100 /var/lib/dpkg/status
1:10.3.21+maria~bionic 500
500 http://ftp.utexas.edu/mariadb/repo/10.3/ubuntu bionic/main ppc64el Packages
500 http://ftp.utexas.edu/mariadb/repo/10.3/ubuntu bionic/main arm64 Packages
500 http://ftp.utexas.edu/mariadb/repo/10.3/ubuntu bionic/main amd64 Packages
500 http://sfo1.mirrors.digitalocean.com/mariadb/repo/10.3/ubuntu bionic/main ppc64el Packages
500 http://sfo1.mirrors.digitalocean.com/mariadb/repo/10.3/ubuntu bionic/main arm64 Packages
500 http://sfo1.mirrors.digitalocean.com/mariadb/repo/10.3/ubuntu bionic/main amd64 Packages
1:10.3.20+maria~bionic 500
500 http://ftp.utexas.edu/mariadb/repo/10.3/ubuntu bionic/main ppc64el Packages
500 http://ftp.utexas.edu/mariadb/repo/10.3/ubuntu bionic/main arm64 Packages
500 http://ftp.utexas.edu/mariadb/repo/10.3/ubuntu bionic/main amd64 Packages
500 http://sfo1.mirrors.digitalocean.com/mariadb/repo/10.3/ubuntu bionic/main ppc64el Packages
500 http://sfo1.mirrors.digitalocean.com/mariadb/repo/10.3/ubuntu bionic/main arm64 Packages
500 http://sfo1.mirrors.digitalocean.com/mariadb/repo/10.3/ubuntu bionic/main amd64 Packages
1:10.3.14+maria~bionic 500
500 http://archive.mariadb.org/mariadb-10.3.14/repo/ubuntu bionic/main ppc64el Packages
500 http://archive.mariadb.org/mariadb-10.3.14/repo/ubuntu bionic/main amd64 Packages
500 http://archive.mariadb.org/mariadb-10.3.14/repo/ubuntu bionic/main arm64 Packages
5.8+1.0.4 500
500 http://fr.archive.ubuntu.com/ubuntu bionic/main amd64 Packages
500 http://fr.archive.ubuntu.com/ubuntu bionic/main i386 Packages
我已经尝试了很多解决方案,从卸载 mysql、安装 mariadb、在 stackOverflow 上看到不同的解决方案......但没有准确地指出错误。
真的很感谢您的帮助,我已经被这个问题困扰了一段时间了......
答案1
您已将 MariaDB 与 MySQL 混合在一起。
见证输出apt-cache policy mysql-common
:
500http://archive.mariadb.org/mariadb-10.3.14/repo/ubuntu仿生/主要 amd64 软件包 …… 500http://fr.archive.ubuntu.com/ubuntu仿生/主要 amd64 软件包
他们俩都有一个mysql-common
包裹。如您所见,MariaDB(注意+maria
版本字符串)来自第三方 MariaDB 存储库,MySQL 则来自 Ubuntu 软件包存储库。
不幸的是,包裹的内容是不一样。此外,MySQL的安装依赖于MySQLmysql-common
包的一部分该软件包的 MariaDB 版本不具有, 尤其该/usr/share/mysql-common/configure-symlinks
程序,它为/etc/mysql/my.cnf
.
这已阻止 MySQLmysql-server-5.7
包执行安装的最后一步,即“配置”步骤。
您需要卸载该软件包的第三方 MariaDB 版本mysql-common
,并安装(并配置)来自 Ubuntu 存储库的 MySQL 版本。然后包的“配置”步骤mysql-server-5.7
将起作用。
您可以通过选择正确的 in 版本mysql-common
(例如)aptitude
并安装它来完成此操作。但实现这一目标的最简单、最干净的方法可能是:
sources.list
从您的和中删除第三方 MariaDB 存储库的所有痕迹sources.list.d/
。- 清除所有孤立的 MariaDB 包。
- 再次安装 MySQL
mysql-server-5.7
及其依赖项。
下一步将解决您的my.cnf
文件中由此来回引起的问题,这些问题可能会出现,并且是下一个mysql-server-5.7
无法完成安装的 原因。那位于 Ubuntu 发行说明中。
进一步阅读
- ”MySQL 5.7“。 Ubuntu 16.04 LTS 发行说明。典范。 2016.wiki.ubuntu.com。
答案2
注意:如果端口 (3306) 被其他应用程序使用,也可能会发生此错误。就我而言,我有一个运行 mysql 的 docker 容器,它使用 3306 端口,因此我的本地 mysql 安装无法配置。
$ sudo netstat -nltp | grep LISTEN | grep 3306
$ sudo netstat -nltp | grep LISTEN | grep 3306
tcp6 0 0 :::3306 :::* LISTEN 1017033/docker-prox
sudo apt purge --auto-remove mysql*
sudo rm -r /etc/mysql
sudo rm -r /var/lib/mysql*
sudo apt install mysql-client-8.0 mysql-server-8.0 --fix-broken -y