2016-10-28 189 views
0

我运行Ubuntu 16.04(干净安装 - 不升级)。 MySQL运行正常 - 但当我尝试更新MySQL时出现此错误:在Ubuntu上MySQL升级失败16.04

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 

感谢

+0

尝试在超级用户或ask-ubuntu上提问。 – AnAmuser

+0

请回答你的问题 – surfer190

回答

0

我碰到的这个我自己,我相信这与做升级过程的停止/启动/重新启动MySQL的。

下面是我在尝试升级MySQL失败后所做的解决方法。

  1. 正常启动MySQL,通常以“service mysql start”为根。
  2. 作为root执行“mysql_upgrade --defaults-file =/etc/mysql/debian.cnf”。希望它应该完成,没有错误或表明MySQL已经升级。
  3. 用你最喜欢的编辑器编辑文件“/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 = $?”,那么注释掉(用'#'前缀)。保存该文件并退出编辑器。
  4. 重新运行升级过程,它应该指示MySQL现在已升级。

在某些时候,我会进一步深入了解为什么在升级过程中“mysql_upgrade ...”调用失败,而不是从命令行单独执行。但我没有经过几次升级,没有问题使用这种方法。

希望这会有所帮助。

'Grip