这篇文章主要介绍了MySQL8.x使用GRANT为用户赋权时报错的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
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这个选项表示该用户可以将自己拥有的权限授权给别人总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程学习网。
本文标题为:MySQL8.x使用GRANT为用户赋权时报错的解决
基础教程推荐
- Python安装第三方库的方法(pip/conda、easy_install、setup.py) 2023-07-28
- Mariadb数据库主从复制同步配置过程实例 2023-07-25
- oracle19c卸载教程的超详细教程 2023-07-23
- Python常见库matplotlib学习笔记之画图中各个模块的含义及修改方法 2023-07-27
- redis 数据库 2023-09-13
- Windows10系统中Oracle完全卸载正确步骤 2023-07-24
- SQL Server如何设置用户只能访问特定数据库和访问特定表或视图 2023-07-29
- Java程序员从笨鸟到菜鸟(五十三) 分布式之 Redis 2023-09-11
- redis乐观锁与悲观锁的实战 2023-07-13
- oracle数据库排序后如何获取第一条数据 2023-07-24
