我正在运行 Ubuntu 16.04(全新安装 - 无需升级)。 MySQL 运行良好 - 但当我尝试更新 MySQL 时出现此错误:
apt-get install
Reading package lists... Done
Building dependency tree
Reading state information... Done
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.
Setting up mysql-server-5.7 (5.7.16-0ubuntu0.16.04.1) ...
Checking if update is needed.
Checking server version.
Running queries to upgrade MySQL server.
Checking system database.
mysql.columns_priv OK
mysql.db OK
mysql.engine_cost OK
mysql.event OK
mysql.func OK
mysql.general_log OK
mysql.gtid_executed OK
mysql.help_category OK
mysql.help_keyword OK
mysql.help_relation OK
mysql.help_topic OK
mysql.innodb_index_stats OK
mysql.innodb_table_stats OK
mysql.ndb_binlog_index OK
mysql.plugin OK
mysql.proc OK
mysql.procs_priv OK
mysql.proxies_priv OK
mysql.server_cost OK
mysql.servers OK
mysql.slave_master_info OK
mysql.slave_relay_log_info OK
mysql.slave_worker_info OK
mysql.slow_log OK
mysql.tables_priv OK
mysql.time_zone OK
mysql.time_zone_leap_second OK
mysql.time_zone_name OK
mysql.time_zone_transition OK
mysql.time_zone_transition_type OK
mysql.user OK
The sys schema is already up to date (version 1.5.1).
Checking databases.
ALL DATABASES RETURNED OK
Error occurred: Error during call to mysql_check.
mysql_upgrade failed with exit status 4
dpkg: error processing package mysql-server-5.7 (--configure):
subprocess installed post-installation script returned error exit status 1
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
Errors were encountered while processing:
mysql-server-5.7
mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)
虽然它正在运行,但我不喜欢错误。你们知道如何解决这个问题吗?
运行 dpkg -l | grep mysql 给出:
dpkg -l | grep mysql
ii libdbd-mysql-perl 4.033-1ubuntu0.1 amd64 Perl5 database interface to the MySQL database
ii libmysqlclient20:amd64 5.7.16-0ubuntu0.16.04.1 amd64 MySQL database client library
ii mysql-client 5.7.16-0ubuntu0.16.04.1 all MySQL database client (metapackage depending on the latest version)
ii mysql-client-5.7 5.7.16-0ubuntu0.16.04.1 amd64 MySQL database client binaries
ii mysql-client-core-5.7 5.7.16-0ubuntu0.16.04.1 amd64 MySQL database core client binaries
ii mysql-common 5.7.16-0ubuntu0.16.04.1 all MySQL database common files, e.g. /etc/mysql/my.cnf
iU mysql-server 5.7.16-0ubuntu0.16.04.1 all MySQL database server (metapackage depending on the latest version)
iF mysql-server-5.7 5.7.16-0ubuntu0.16.04.1 amd64 MySQL database server binaries and system database setup
ii mysql-server-core-5.7 5.7.16-0ubuntu0.16.04.1 amd64 MySQL database server binaries
ii php-mysql 1:7.0+45+deb.sury.org~xenial+1 all MySQL module for PHP [default]
ii php5.6-mysql 5.6.27-1+deb.sury.org~xenial+1 amd64 MySQL module for PHP
ii php7.0-mysql 7.0.12-1+deb.sury.org~xenial+1 amd64 MySQL module for PHP
谢谢
最佳答案
我自己也遇到过这个问题,我相信这与升级过程如何停止/启动/重新启动 MySQL 有关。
这是我在尝试升级 MySQL 失败后所做的解决方法。
- 以 root 身份正常启动 MySQL,通常是“service mysql start”。
- 以 root 身份执行“mysql_upgrade --defaults-file=/etc/mysql/debian.cnf”。希望它应该没有错误地完成或表明 MySQL 已经升级。
- 使用您喜欢的编辑器编辑文件“/var/lib/dpkg/info/mysql-server-5.7.postinst”。在第 320 行(取决于版本)附近找到行“mysql_upgrade --defaults-file=/etc/mysql/debian.cnf || result=$?”。注释该行(在行前加上'#'),如果看起来像“#mysql_upgrade --defaults-file=/etc/mysql/debian.cnf || result=$?”。保存文件并退出编辑器。
- 重新运行升级过程,它应该表明 MySQL 现已升级。
在某些时候,我会进一步深入了解为什么“mysql_upgrade ...”调用在升级过程中失败,而不是单独从命令行调用。但是我使用这种方法还没有经历过几次没有问题的升级迭代。
希望这对您有所帮助。
'抓地力
关于MySQL 在 Ubuntu 16.04 上升级失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40300112/