无法在 ubuntu16.0.4 中安装 mysql-server

无法在 ubuntu16.0.4 中安装 mysql-server

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 就不会关闭。

相关内容