MySQL 在 Ubuntu 16.04 上升级失败

标签 mysql linux ubuntu

我正在运行 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 失败后所做的解决方法。

  1. 以 root 身份正常启动 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 ...”调用在升级过程中失败,而不是单独从命令行调用。但是我使用这种方法还没有经历过几次没有问题的升级迭代。

希望这对您有所帮助。

'抓地力

关于MySQL 在 Ubuntu 16.04 上升级失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40300112/

相关文章:

c - execvp 找不到程序时返回错误

python - 使用python检查ubuntu中的dd状态

apache - 预期 </VirtualHost> 但看到 </Directory>

linux - 在 OpenSUSE 上安装 apt-get

mysql - mysql 查询可以扩展为另一个查询的子查询吗?

linux - bash 脚本。在数字范围前插入一个空行

c - 在 Linux 中从 C 代码生成原始二进制文件

mysql - 计算关系指向同一个键的次数

mysql - 获取用户关注的个人资料的帖子

mysql - MySQL 是否可以在一台多处理器机器上扩展?