Error number: 3982; Symbol: ER_INVALID_USER_ATTRIBUTE_JSON; SQLSTATE: HY000
Message: The user attribute must be a valid JSON object
Error number: 3982; Symbol: ER_INVALID_USER_ATTRIBUTE_JSON; SQLSTATE: HY000
错误说明:
ER_INVALID_USER_ATTRIBUTE_JSON 是 MySQL 的一个错误,出现这个错误的具体原因是在MySQL-5.7.6 和 更高版本中,使用属性字符串 “SET IDENTIFIED WITH mysql_native_password BY ‘user’@’host'”在创建MySQL用户时反馈了不合法的JSON格式。
在运行 CREATE USER 语句时,使用一个不正确的设置格式会引发 ER_INVALID_USER_ATTRIBUTE_JSON 错误。例如,当使用如下格式创建 MySql用户时:
CREATE USER ‘username’@’localhost’ IDENTIFIED BY ‘password’ SET IDENTIFIED WITH mysql_native_password BY ‘user’@’host’;
它将返回 ER_INVALID_USER_ATTRIBUTE_JSON 错误,因为它没有以正确的 JSON 格式提供设置参数。
解决方法:
解决 ER_INVALID_USER_ATTRIBUTE_JSON 错误的方法很简单,只需要确保在执行 CREATE USER 语句时,提供设置参数的格式是正确的,按照如下格式提供:
CREATE USER ‘username’@’localhost’ IDENTIFIED BY ‘password’ SET IDENTIFIED WITH ‘mysql_native_password’ AS ‘{”user”: ”host”}’;
这样就可以正确的识别MySQL 创建用户的设置,从而避免背错误。