为什么这个自定义的用户创建不了权限

为什么这个自定义的用户创建不了权限,提示密码附近有语法错误
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'identified BY '123456'' at line 1

img

把 'identified BY '123456'' 去掉试试

  • 这篇博客: 使用 grant 权限列表 on 数据库 to ‘用户名’@’访问主机’ identified by ‘密码’时会出现”……near ‘identified by ‘密码” at line 1”错误中的 ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIED by ‘root’ 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 出现这样的错误的原因是因为新版的的mysql版本已经将创建账户和赋予权限的方式分开了。

    解决方案是先创建用户后赋予权限:

    创建账户:create user ‘用户名’@’访问主机’ identified by ‘密码’;
    
    赋予权限:grant 权限列表 on 数据库 to ‘用户名’@’访问主机’ ;(修改权限时在后面加with grant option)
    

    在这里插入图片描述

    create user 'root'@'192.169.230.131' identified by 'root';
    
    

    在这里插入图片描述

    grant all on hive.* to 'root'@'192.168.230.131.' WITH GRANT OPTION;
    
  • 以下回答由chatgpt基于相关博客总结生成:

    根据参考资料和错误提示,可以得出该问题的原因是创建用户和赋予权限顺序错误,需要先创建用户再赋予权限。具体解决方案是:

    1. 使用合法的 SQL 语法创建自定义用户,参考以下语句:
    CREATE USER 'username'@'localhost' IDENTIFIED BY 'password'; 
    
    1. 授予用户相应的权限,参考以下语句:
    GRANT ALL ON dbname.* TO 'username'@'localhost'; 
    

    注意:如果需要授予的权限不只是 ALL,则需要对以上 GRANT ... TO 语句进行相应的修改。

    1. 在执行以上语句时,需要注意各个参数的填写和顺序。例如,在语句中指定用户名和密码时,需要用单引号将其括起来。

    2. 如果在执行以上语句后仍然出现语法错误,可以尝试检查 SQL 语句的合法性和拼写错误,或者查询 MySQL 官方文档中相应的语法说明。在调试过程中,可以使用 MySQL 自带的命令行工具或者图形化管理工具来查看详细的错误信息,并进行相应的修改。

    因此,具体到本问题,可以先执行以下语句:

    create user 'customuser'@'localhost' identified by 'password';
    

    然后再执行以下语句:

    grant all on dbname.* to 'customuser'@'localhost';
    

    如果还出现语法错误,可以再检查以上语句是否存在拼写错误或参数填写错误,并参考官方文档进行修正。