【问题标题】:Why can't I upgrade MySQL in Xampp?为什么我不能在 Xampp 中升级 MySQL?
【发布时间】:2018-05-29 15:03:25
【问题描述】:

我遵循了这个指南https://superuser.com/a/860604

但是,当我运行 mysql 时,它会掉下来并报错:

2017-12-15 12:24:58 10592 [错误] 表 mysql.column_stats 的定义不正确:位置 3 的预期列“min_value”具有类型 varbinary(255),找到类型 varchar(255)。

2017-12-15 12:24:58 10592 [错误] 表 mysql.column_stats 的定义不正确:位置 4 的预期列 'max_value' 具有类型 varbinary(255),找到类型 varchar(255)。

怎么了?

【问题讨论】:

  • 看起来这是一个已知的错误:bugs.mysql.com/bug.php?id=42100
  • 您运行升级了吗?
  • @RiggsFolly 没有。无法启动,因为他无法连接mysql服务器
  • 您正在从我假设的管理员帐户运行升级?还是你在 linux 上使用 XAMPP?
  • 是 Linux 还是在 Windows 上使用管理员帐户?

标签: mysql xampp


【解决方案1】:

对我有用的是

use mysql;
alter table column_stats modify column max_value varbinary(255);
alter table column_stats modify column min_value varbinary(255);

将错误消息更改为

InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade

所以我跑了mysql_upgrade,一切似乎又正常了。

【讨论】:

  • 我不知道这是何时或如何发生的,但我的日志只是被它压碎了,这是我注意到的唯一原因。这个修复很完美,谢谢。
【解决方案2】:

升级后数据库“mysql”架构可能已更改。 mysql 期望两个列具有不同的类型。

将 mysql 数据库转储为备份并更改这些列:

alter table `column_stats` drop column `min_value`;
alter table `column_stats` drop column `max_value`;
alter table `column_stats` add column `min_value` varbinary(255) DEFAULT NULL AFTER `column_name`;
alter table `column_stats` add column `max_value` varbinary(255) DEFAULT NULL AFTER `min_value`;

【讨论】:

  • 在 Xampp 上对 MariaDB 进行大量导入后,我有一个 22GB(!) .err 文件。这解决了我的问题。
【解决方案3】:

这可能已经过时了,但这应该可以帮助大多数现在困扰的人。我也从 MariaDB 10.1.x(XAMPP 默认提供)迁移到 MariaDB 10.2.18(他们的最新版本 10.2.x)。

假设您正确完成,直到您的源代码中的第 9 行。

然后在 mysql/bin/my.ini

中简单地评论这个
#innodb_additional_mem_pool_size = 2M

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-15
    • 2016-06-15
    • 1970-01-01
    • 2019-09-19
    • 2020-03-09
    • 1970-01-01
    相关资源
    最近更新 更多