返回顶部
首页 > 资讯 > 数据库 >MySQL8.x使用GRANT为用户赋权时报错的解决
  • 873
分享到

MySQL8.x使用GRANT为用户赋权时报错的解决

摘要

目录Mysql8.x使用GRANT为用户赋权时报错问题描述原因分析解决方案mysql版本:'for the right syntax to use near 'identified by 'pas

Mysql8.x使用GRANT为用户赋权时报错

问题描述

在安装 MySQL 8.x 的过程中,往往需要为 MySQL 中的一些账户赋予远程访问的权限。

在 MySQL 5.x 的版本中的操作方式

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

在 MySQL 8.x 中版本中按照以上操作

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
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 '123456' WITH GRANT OPTION' at line 1

原因分析

通过官网文档的指引可以知道,新版本的 MySQL 8.x 版本已经将创建账户和赋权的方式分开导致以上的命令在 MySQL 8.x 上执行报语法错误。

解决方案

最终解决方案

# 创建账户
CREATE USER '用户名'@'访问主机' IDENTIFIED BY '密码';
# 为创建的账户赋权
GRANT '权限列表' ON '数据库' TO '用户名'@'访问主机';
GRANT ALL ON *.* TO 'root'@'%';
# 刷新
FLUSH PRIVILEGES;

mysql版本:'for the right syntax to use near 'identified by 'password' with grant option'

查询mysql具体版本

SELECT @@VERSION

问题分析:

mysql版本8.0.13,在给新用户授权时,发生了变化:

1064 - 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  'password' with grant option' at line 5, Time: 0.000000s

出错的语句:

grant all privileges on *.* to 'root'@'172.16.10.203' identified by 'password' with grant option

修正后的语句:分开三次执行

#创建账户
create user 'root'@'172.16.10.203' identified by 'password'
#赋予权限,with grant option这个选项表示该用户可以将自己拥有的权限授权给别人
grant all privileges on *.* to 'root'@'172.16.10.203' with grant option
#改密码&授权超用户,flush privileges 命令本质上的作用是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里
flush privileges;

原因分析:

此版的的mysql版本把将创建账户和赋予权限分开了。

创建账户::create user ‘用户名'@‘访问主机' identified by ‘密码';
赋予权限:grant 权限列表 on 数据库 to ‘用户名'@‘访问主机' ;
with grant option这个选项表示该用户可以将自己拥有的权限授权给别人

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL8.x使用GRANT为用户赋权时报错的解决

本文链接: https://lsjlt.com/news/201897.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作