【问题标题】:apt-get upgrade always fails on mariadb-server due to timezone由于时区,apt-get upgrade 在 mariadb-server 上总是失败
【发布时间】:2015-04-10 15:30:24
【问题描述】:

MariaDB 10.1.3,内核 3.19.3,Debian

问题:由于 mariadb-server 时区问题,apt-get 升级总是失败。

my.cnf 包含

[mysqld]
default_time_zone=America/New_York

我还导入了 tzinfo:

# mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql

当我手动停止/启动服务时,没有问题:

# service mysql restart
[ ok ] Stopping MariaDB database server: mysqld.
[ ok ] Starting MariaDB database server: mysqld ..
[info] Checking for corrupt, not cleanly closed and upgrade needing tables..

但是,每次我运行 apt-get upgrade 时,它​​总是在 mariadb-server 上失败:

# apt-get upgrade
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.
Do you want to continue [Y/n]?
Setting up mariadb-server-10.1 (10.1.3+maria-1~wheezy) ...
[ ok ] Stopping MariaDB database server: mysqld.
dpkg: error processing mariadb-server-10.1 (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of mariadb-server:
 mariadb-server depends on mariadb-server-10.1 (= 10.1.3+maria-1~wheezy); however:
  Package mariadb-server-10.1 is not configured yet.

dpkg: error processing mariadb-server (--configure):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 mariadb-server-10.1
 mariadb-server
E: Sub-process /usr/bin/dpkg returned an error code (1)

错误是:

# tail /var/log/syslog
mysqld_safe[32269]: [ERROR] Fatal error: Illegal or unknown default time zone 'America/New_York'

这发生在多台服务器上,并已成为真正的烦恼。可以使用你的帮助。顺便说一句,它不是 MariaDB 版本,因为这个错误在多个版本中已经持续了几年。

编辑添加:我忘了提到如果我从 my.cnf 中删除 default_time_zone 参数,apt-get upgrade 确实有效。只有存在该参数时,apt-get upgrade 才会失败。它需要存在于我的配置中。

编辑 2:为确保清晰,即使在删除 default_time_zone 之后,然后成功执行 apt-get 升级,然后添加回 default_time_zone 并重新启动——未来的 mariadb-* 升级将通过 apt 失败。在 apt-get 升级过程中,存在与正常服务启动不一致的特定过程。

【问题讨论】:

  • 以前的mysql/mariadb是什么版本的?你运行 mysql_upgrade 了吗?
  • 这个错误在多个版本中持续了几年。我为你跑了 mysql_upgrade:这个 MySQL 的安装已经升级到 10.1.3-MariaDB
  • 这是一个有效的时区。服务器上是否安装了tzdata 包?
  • 是的,它已安装。我想重申 mysql 手动启动和工作正常,只有 apt-get upgrade 有问题。

标签: mysql linux timezone mariadb apt-get


【解决方案1】:

有同样的问题。这对我有用:

sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo apt-get autoremove
sudo apt-get autoclean
sudo rm -rf /var/lib/mysql
sudo apt-get install mariadb-server

备份/var/lib/mysql文件夹,里面的数据都会被删除

【讨论】:

  • 根据我的经验,这只适用于下一次更新
  • 不确定它是否在下次更新时不起作用。我昨天从 Maria 5.5 升级到 10.1 没有任何问题
【解决方案2】:

也许答案是“MySQL 安装过程会在 mysql 数据库中创建时区表,但不会加载它们。您必须按照以下说明手动执行...”

See Manual page.

您也可以选择提交有关安装错误的错误报告。

【讨论】:

  • 糟糕,我的回答没用。
猜你喜欢
  • 2014-09-15
  • 1970-01-01
  • 2018-01-20
  • 2019-01-28
  • 1970-01-01
  • 1970-01-01
  • 2016-07-12
  • 1970-01-01
  • 2016-07-14
相关资源
最近更新 更多