Configuring mysql-server-5.7 (5.7.11-0ubuntu6) …
insserv: warning: current start runlevel(s) (empty) 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' overrides LSB defaults (0 1 6).
mysql_upgrade: Got error: 2002: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) while connecting to the MySQL server
Upgrade process encountered error and will not continue.
mysql_upgrade failed with exit status 11
dpkg: error with
mysql-server-5.7 (--configure):
apt-get remove返回相同的结果。
从15.10升级到16.04时出现此错误
答案 0 :(得分:13)
对我来说完全相同:运行级警告和mysql_upgrade错误。
我想这是因为我禁用了mysql服务,启用它可以解决问题:
sudo systemctl enable mysql
答案 1 :(得分:2)
我刚刚遇到这个问题,这里有一个非常相似的错误报告:https://bugs.launchpad.net/ubuntu/+source/mysql-5.7/+bug/1584287
在我的情况下,我将def haversine(lon1, lat1, lon2, lat2):
"""
Calculate the great circle distance between two points
on the earth (specified in decimal degrees)
"""
# convert decimal degrees to radians
lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2])
# haversine formula
dlon = lon2 - lon1
dlat = lat2 - lat1
a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2
c = 2 * asin(sqrt(a))
km = 6367 * c
return km
设置为禁用,mysql.service
脚本在这种情况下似乎无法启动服务器。我启用了服务(不需要启动它)并重新运行升级。在那之后,我停止了服务并再次禁用它。
我不确定还有什么可能导致此问题,但如果有人在禁用该服务时遇到此问题,请启用它以进行升级。
答案 2 :(得分:0)
Manualy删除所有MySQL服务器文件
答案 3 :(得分:0)
似乎mysql-server现在已替换为mariadb
安装maridb-server解决了这个问题。
sudo apt-get install mariadb-server
注意: - 您不会获得数据库。使用命令mysql_secure_installation
重置mysql密码答案 4 :(得分:0)
在我的情况下,我可以通过更改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.
在那里我找到了apparmor DENIED消息:
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指向那里。但有一天有希望弄明白......;)
答案 5 :(得分:0)
以下为我工作,找到了解决方案 - here
答案 6 :(得分:-1)
我找到了解决方案here
<div class="roundHex"></div>
rm -r /var/lib/mysql*
(可能不适用于较新的系统,但不要担心)mysql_install_db -u mysql
systemctl unmask mysql.service