为什么我不能在Xampp中升级MySQL?

时间:2017-12-15 11:45:21

标签: mysql xampp

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

然而,当我运行mysql时,它会让我失误:

  

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

     

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

出了什么问题?

3 个答案:

答案 0 :(得分:3)

这可能很旧,但这应该可以帮助大多数人立即解决问题。我还将从MariaDB 10.1.x(由XAMPP提供默认设置)迁移到MariaDB 10.2.18(其最新版本为10.2.x)。

假设您做得正确,直到源中的第9行。

然后只需在 mysql / bin / my.ini

中对此进行评论
#innodb_additional_mem_pool_size = 2M

希望这会有所帮助

答案 1 :(得分:0)

升级后,数据库“ 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`;

答案 2 :(得分:0)

对我有用的是

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,一切似乎又恢复正常了。