为什么这个自定义的用户创建不了权限,提示密码附近有语法错误
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
把 'identified BY '123456'' 去掉试试
出现这样的错误的原因是因为新版的的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;
根据参考资料和错误提示,可以得出该问题的原因是创建用户和赋予权限顺序错误,需要先创建用户再赋予权限。具体解决方案是:
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL ON dbname.* TO 'username'@'localhost';
注意:如果需要授予的权限不只是 ALL,则需要对以上 GRANT ... TO 语句进行相应的修改。
在执行以上语句时,需要注意各个参数的填写和顺序。例如,在语句中指定用户名和密码时,需要用单引号将其括起来。
如果在执行以上语句后仍然出现语法错误,可以尝试检查 SQL 语句的合法性和拼写错误,或者查询 MySQL 官方文档中相应的语法说明。在调试过程中,可以使用 MySQL 自带的命令行工具或者图形化管理工具来查看详细的错误信息,并进行相应的修改。
因此,具体到本问题,可以先执行以下语句:
create user 'customuser'@'localhost' identified by 'password';
然后再执行以下语句:
grant all on dbname.* to 'customuser'@'localhost';
如果还出现语法错误,可以再检查以上语句是否存在拼写错误或参数填写错误,并参考官方文档进行修正。