sudo apt-get install mysql-server
失败,此时阻塞
var/lib/dpkg/info/mysql-server-5.7.postinst: line 143: /usr/share/mysql-common/configure-symlinks: No such file or directory
我发现这个错误的解决方案是注释 /var/lib/dpkg/info/mysql-server-5.7.postinst 文件中的第 143 行。
但我的问题是我找不到 /var/lib/dpkg/info/mysql-server-5.7.postinst 文件...更不用说在其中注释一行了。
那么如何摆脱困境
ps:我已经安装了 mariadb,并按照我在谷歌上搜索的步骤卸载了它
更新:
我按照第一个答案给出的步骤操作了,但仍然提示之前的错误
令人惊讶的是,这次我可以sudo vim /var/lib/dpkg/info/mysql-server-5.7.postinst file
,并且我注释了第 143 行,但是它报告了另一个错误
ERROR: Unable to start MySQL server:
2017-11-26T08:51:57.033255Z 0 [Note] mysqld (mysqld 5.7.20-0ubuntu0.16.04.1-log) starting as process 22612 ...
2017-11-26T08:51:57.034651Z 0 [ERROR] You have enabled the binary log, but you haven't provided the mandatory server-id. Please refer to the proper server start-up parameters documentation
2017-11-26T08:51:57.035603Z 0 [ERROR] Aborting
答案1
我通过删除 mariadb 的 deb 源并清除 mysql-common 然后重新安装它来解决了这个问题。
执行:
sudo apt edit-sources
并查找任何包含 mariadb 的内容,例如:deb [arch=amd64,arm64,ppc64el] http://ftp.nluug.nl/db/mariadb/repo/10.3/ubuntu bionic main
#
通过在它前面加上一个来注释掉它。然后运行
sudo apt update
sudo apt purge mysql-common
sudo apt install mysql-common
之后你可以通过以下方式正确安装 mysql-serversudo apt install mysql-server
如果它从 repo 中消失,脚本是:
#!/bin/sh
set -e
case "$1" in
install)
variant="$2"
my_cnf_path="$3"
update-alternatives --install /etc/mysql/my.cnf my.cnf "$my_cnf_path" 200
;;
remove)
variant="$2"
my_cnf_path="$3"
update-alternatives --remove my.cnf "$my_cnf_path"
;;
esac
```
答案2
只需清除所有 mysql 包并重新安装:
sudo apt-get remove --purge *mysql*
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt-get install mysql-server mysql_secure_installation
答案3
我通过添加安装脚本寻找的空白文件,然后为每个人授予 rwx 权限来修复该问题。这可能不是最好的方法,但对我来说很有效。
sudo touch /usr/share/mysql-common/configure-symlinks
sudo chmod 777 /usr/share/mysql-common/configure-symlinks
sudo apt-get update
sudo apt-get upgrade
答案4
我已经在 16.04.7 上运行了 mysql5.7,但 apt 仍在尝试配置它并出错。我尝试创建人工符号链接以绕过安装后脚本中的第 143 行错误,但没有成功 - 它会停止并且无法正确启动 mysqld...
我的解决方案是将“exit 0”放在安装后脚本的顶部,然后运行“apt upgrade”,然后删除“exit 0”并保存。现在,只要运行 apt upgrade,mysqld 就不会关闭。