这篇文章主要介绍了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为用户赋权时报错的解决
基础教程推荐
- mysql查询FIND_IN_SET REGEXP实践示例 2023-07-27
- SQL数据库十四种案例介绍 2023-08-12
- MySQL实现批量插入测试数据的方式总结 2023-08-12
- 关于对MongoDB索引的一些简单理解 2023-07-15
- Redis中的BigKey问题排查与解决思路详解 2023-07-13
- 还原Sql Server数据库BAK备份文件的3种方式以及常见错误总结 2023-07-29
- Oracle 数据库启动过程的三阶段、停库四种模式详解 2023-07-23
- 在阿里云CentOS 6.8上安装Redis 2023-09-12
- Redis五种数据类型详解 2023-07-13
- centos7中redis安装 2023-09-12
