服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Mysql - MySQL8.x使用GRANT为用户赋权时报错的解决

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

2023-04-28 17:38Ramboooooooo Mysql

这篇文章主要介绍了MySQL8.x使用GRANT为用户赋权时报错的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

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

问题描述

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

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

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

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

?
1
2
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 上执行报语法错误。

解决方案

最终解决方案

?
1
2
3
4
5
6
7
# 创建账户
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具体版本

?
1
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

出错的语句:

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

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

?
1
2
3
4
5
6
#创建账户
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版本把将创建账户和赋予权限分开了。

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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/Rambo_Yang/article/details/108619013

延伸 · 阅读

精彩推荐
  • MysqlWindows环境下的MYSQL5.7配置文件定位图文分析

    Windows环境下的MYSQL5.7配置文件定位图文分析

    本文通过图文并茂的形式给大家介绍了Windows环境下的MYSQL5.7配置文件定位 ,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下...

    LukeFan2982020-09-25
  • Mysqlmysql多版本并发控制MVCC的实现

    mysql多版本并发控制MVCC的实现

    这篇文章主要介绍了mysql多版本并发控制MVCC的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下...

    fandsimple3512020-12-08
  • Mysqlmysql中的锁机制深入讲解

    mysql中的锁机制深入讲解

    对于任何一种数据库来说都需要有相应的锁定机制,所以MySQL自然也不能例外。下面这篇文章主要给大家介绍了关于mysql中锁机制的相关资料,文中通过示例...

    木瓜芒果4502019-06-16
  • MysqlCentos下Mysql安装图文教程

    Centos下Mysql安装图文教程

    这篇文章主要为大家详细介绍了 Centos下Mysql安装图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 ...

    GoGoCoder5722020-06-27
  • Mysql分享几个简单MySQL优化小妙招

    分享几个简单MySQL优化小妙招

    这篇文章主要介绍了分享几个简单MySQL优化小妙招,分享内容有、设置大小写不敏感、MySql 的用户和权限管理等内容,需要的小伙伴可以参考一下,需要的朋...

    苏州程序大白6762022-10-14
  • MysqlMySQL 数据库跨操作系统的最快迁移方法

    MySQL 数据库跨操作系统的最快迁移方法

    原始的是Windows 2003下的32位的MySQL数据库, 新的服务器是Sun的64位的小型机,64位的MySQL数据库。 ...

    mysql教程网6502019-10-25
  • MysqlSpringBoot连接MySQL获取数据写后端接口的操作方法

    SpringBoot连接MySQL获取数据写后端接口的操作方法

    今天通过本文给大家介绍SpringBoot连接MySQL获取数据写后端接口的操作方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定...

    爱笑&7162021-12-01
  • MysqlMysql主键UUID和自增主键的区别及优劣分析

    Mysql主键UUID和自增主键的区别及优劣分析

    这篇文章主要介绍了Mysql主键UUID和自增主键的区别及优劣分析,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    银月 rey11082021-04-08