MySQl 5.7安装在Kubuntu 16.04上失败

configurationmysql-server-5.7(5.7.11-0ubuntu6)… insserv:警告:当前启动运行级别(空)脚本mysql' overrides LSB defaults (2 3 4 5). insserv: warning: current stop runlevel(s) (0 1 2 3 4 5 6) of script mysql' overrides LSB defaults (2 3 4 5). insserv: warning: current stop runlevel(s) (0 1 2 3 4 5 6) of script mysql'覆盖LSB默认值(0 1 6)。 mysql_upgrade:出现错误:2002:无法连接到本地MySQL服务器通过套接字“/var/run/mysqld/mysqld.sock”(2)连接到MySQL服务器时升级过程遇到错误,将不会继续。 mysql_upgrade失败,退出状态11 dpkg:mysql-server-5.7错误(–configure):

apt-get remove返回相同的结果。

此错误从15.10升级到16.04

这对我来说完全一样:runlevel警告和mysql_upgrade错误。

我想这是因为我禁用MySQL服务,使其修复了问题:

sudo systemctl enable mysql

我刚刚遇到这个问题,这里有一个非常类似的错误报告: https : //bugs.launchpad.net/ubuntu/+source/mysql-5.7/+bug/1584287

在我的情况下,我把mysql.service设置为禁用,在这种情况下mysql_upgrade脚本似乎无法启动服务器。 我启用了服务(不需要启动它)并重新运行升级。 之后,我停止了服务,并再次禁用它。

我不知道还有什么可能会导致这种情况,但是如果有人遇到这种服务被禁用,只需启用它进行升级。

手动删除MySQL服务器的所有文件

似乎mysql-server现在被替换为mariadb

安装maridb-server修复了这个问题。

sudo apt-get安装mariadb-server

注意: – 你不会得到你的数据库。 使用命令mysql_secure_installation重置mysql密码

在我的情况下,我可以通过改变apparmor来解决这个问题(在使用等离子体的kubuntu 16.04上)。 按照安装错误消息的建议,我查看了journalctl -xe

 [....] Starting mysql (via systemctl): mysql.serviceJob for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details. 

在那里,我发现了一些拒绝的消息:

 AVC apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/home/system/var/log/mysql/error.log" pid=32610 comm="mysqld" request 

事实上,基本目录/home/system/...存在,但是/etc/apparmor.d/usr.sbin.mysqld不允许访问。

所以添加以下几行到/etc/apparmor.d/local/usr.sbin.mysqld解决了我的问题:

 # For more details, please see /etc/apparmor.d/local/README. # Allow log file access /home/system/var/log/mysql.err rw, /home/system/var/log/mysql.log rw, /home/system/var/log/mysql/ r, /home/system/var/log/mysql/** rw, 

不要忘记重新启动apparmor,然后重新启动mysql安装(例如apt-get install --reinstall mysql-common mysql-server或者其他方法来安装它。)

我根本不知道为什么(以及从何时起)目录/home/system存在,以及为什么mysql指向那里。 但有一天,希望能找出…;)

下面为我​​工作,发现解决方案 – 在这里

  1. sudo update-alternatives – 删除my.cnf /etc/mysql/my.cnf.migrated
  2. sudo服务mysql启动

我在这里找到了解决方案

  1. 删除所有的mysql文件: rm -r /var/lib/mysql*
  2. 安装mysql self数据库: mysql_install_db -u mysql (可能不适用于较新的系统,但不用担心)
  3. 启用systemd的服务: systemctl unmask mysql.service
  4. 然后启动mysql service service mysql start