MySQL控制台插入mysql.user表报not insertable-into错误如何创建用户
错误原因
你之所以收到ERROR 1471 (HY000): The target table user of the INSERT is not insertable-into报错,是因为新版本的MySQL/MariaDB中,mysql.user已经从可编辑的物理表调整为系统视图,不支持直接通过INSERT语句写入数据,手动修改系统表的操作早已被官方废弃。
正确创建MySQL用户的操作步骤
- 确认已经用root账号登录MySQL控制台,你当前的登录命令是可行的:
C:\xampp\mysql\bin\mysql -u root -p
输入root密码后即可进入控制台操作。
- 执行
CREATE USER语句创建用户,以你要创建的本地用户steve为例,执行以下命令:
CREATE USER 'steve'@'localhost' IDENTIFIED BY 'steve';
如果需要创建允许所有IP远程访问的用户,把localhost替换为%即可:
CREATE USER 'steve'@'%' IDENTIFIED BY 'steve';
- 给新建的用户分配数据库权限,比如给steve用户分配
steve数据库的全部操作权限:
GRANT ALL PRIVILEGES ON steve.* TO 'steve'@'localhost';
如果只需要分配查询权限,就把ALL PRIVILEGES替换为SELECT,可按需调整权限范围。
- 刷新权限使配置生效:
FLUSH PRIVILEGES;
注意事项
- 生产环境不要使用和用户名相同的弱密码,建议配置大小写字母、数字、特殊符号组合的密码
- 权限分配遵循最小够用原则,不要随意给普通用户
ALL PRIVILEGES或全库*.*权限 - MySQL 8.0及以上版本、新的MariaDB版本已经移除了
PASSWORD()函数,不要在创建用户、修改密码的场景使用该函数,直接输入明文密码即可,系统会自动加密存储
内容的提问来源于stack exchange,提问作者RockBoro
相关产品推荐
相关产品推荐

