【问题标题】:MYSQL not allowing JSON data typeMYSQL 不允许 JSON 数据类型
【发布时间】:2018-10-09 09:58:09
【问题描述】:

我正在尝试将 JSON 类型的列添加到我的一个表中。我将 XAMPP 与 phpmyadmin 一起使用。服务器版本为 10.1.31-MariaDB。 innodb 版本为 5.6.36-83.0

当我尝试从 phpmyadmin 的选择框中选择 JSON 类型时,我看不到任何关于 JSON 的信息。此外,运行此查询会导致“语法错误”:

ALTER TABLE my_table
ADD `some_column` json;

我在手册和各种教程中都看到 mysql 确实支持 JSON 类型。

是版本问题吗?老实说,我对整个 mysql 版本控制情况感到非常困惑。我在 Wikipedia 上看到,最新的稳定版本是 8.0.11,而我的似乎完全不同(我不知道哪个是相关的:“服务器”或“innodb”版本)我假设 XAMPP 使用最新的mysql版本,但也许我错了。

有人能解释一下这个问题吗?如果它实际上是一个版本的东西,是否可以升级,同时仍然使用 XAMPP?

【问题讨论】:

    标签: mysql json xampp


    【解决方案1】:

    似乎这种数据类型仅适用于 MariaDB 10.2.7 版。您可以改用 LONGTEXT,因为根据文档,JSON 只是 LONGTEXT 的别名。

    https://mariadb.com/kb/en/library/json-data-type/

    【讨论】:

      【解决方案2】:

      是的,是版本问题,见https://mariadb.com/kb/en/library/mariadb-vs-mysql-compatibility/

      您使用的是 MariaDB 10.1,它基于 MySQL 5.6/5.7(因此是 innodb 版本)。但是 JSON 数据类型是在 MySQL 8.0 中添加的。到目前为止,MariaDB 似乎不支持 JSON 数据类型。

      【讨论】:

      • 我明白了。好吧,我会按照 Ebby 的建议使用 LONGTEXT。
      • "但是在 MySQL 8.0 中添加了 JSON 数据类型" 没有在 MySQL 5.7 中添加 JSON 数据类型dev.mysql.com/doc/refman/5.7/en/json.html .. MySQL 8.0 添加了更多 JSON 函数来处理 JSON。跨度>
      • 好吧,雷蒙德,我的 mysql 版本是 5.6 。我不明白 XAMPP 怎么会有这么旧的版本
      【解决方案3】:

      在 5.7 版本中添加并在 8 中改进的 JSON 数据类型。MariaDB 没有 JSON 数据类型

      【讨论】:

        猜你喜欢
        • 2017-12-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-13
        • 1970-01-01
        相关资源
        最近更新 更多