Mysql 将SQL查询导入到phpmyadmin时出现问题

Mysql 将SQL查询导入到phpmyadmin时出现问题,mysql,phpmyadmin,Mysql,Phpmyadmin,我有一个mysql: CREATE TABLE security_user ( id INT AUTO_INCREMENT NOT NULL, email VARCHAR(180) NOT NULL, roles JSON NOT NULL, password VARCHAR(255) NOT NULL, UNIQUE INDEX UNIQ_52825A88E7927C74 (email), PRIMARY KEY(id) ) DEFAULT CH

我有一个mysql:

CREATE TABLE security_user
(
    id INT AUTO_INCREMENT NOT NULL,
    email VARCHAR(180) NOT NULL,
    roles JSON NOT NULL,
    password VARCHAR(255) NOT NULL,
    UNIQUE INDEX UNIQ_52825A88E7927C74 (email),
    PRIMARY KEY(id)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB
当我尝试在php错误中使用它时,我有一个错误:

1064-第1行中的obok'JSON NOT NULL,password VARCHAR(255)NOT NULL,UNIQ_52825A88E7927C7'的语法有问题

我已安装Xampp服务器:

如何修复此问题?

XAMPP的当前版本(实际上是7.1.28、7.2.17和7.3.4)正在使用MariaDB 10.1.38。此版本不支持
JSON
数据类型。至少需要10.2.7版(请参阅)


在您的情况下,我会考虑定义一个干净的规范化关系(用户角色),而不是在JSON数组中存储角色。 您正在使用哪个db版本???从MySQL 5.7.8开始,MySQL支持原生JSON数据类型“XAMPP正在使用MariaDB 10.1.X-JSON可从MariaDB 10.2获得-使用

SELECT version()
10.1.38-MariaDB检查您的确切版本幸运的话,因为现在您有更多的理由创建一个干净的规范化设计。不要将
角色
存储在JSON数组中。创建多对多关系。Paul,我编辑了你的答案,并添加了XAMPP的当前版本(截至今天,2019年4月29日)(此答案可能会在未来版本中更改)@Cid Tanks-这比“当前”更准确。