ERROR 1044 (42000)报错的解决

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: 【问题背景】用root用户创建用户的时候,报错ERROR 1044 (42000) mysql> grant  select on  *.* to rep@'%' identified by '123';ERROR 1045 (28000): Access d...

【问题背景】用root用户创建用户的时候,报错ERROR 1044 (42000)

mysql> grant  select on  *.* to rep@'%' identified by '123';
ERROR 1045 (28000): Access denied for user 'root'@'%' (using password: YES)

 

以下是整个问题的分析和解决过程:

【1】确定当前的登录用户,避免出现当前登录的用户(http://blog.itpub.net/12679300/viewspace-1453490/

mysql> select current_user();
+----------------+
| current_user() |
+----------------+
| root@%         |
+----------------+
1 row in set (0.00 sec)

说明:当前用户没有问题;

 

【2】查看当前用户的权限:show grants for root@'%' ;

mysql> show grants for root@'%' ;

+---------------------------------------------------------------------------------------------------------------------------------------------------------+
|  Grants for root@%                                                                                                                          |
+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD '*228E49B99A5F24B7CDA2CC2A9F4A70635708E6CC' |
+----------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

说明:当前用户具有所有的权限;

 

【3】查看用户的授权权限

mysql> SELECT host,user,password,Grant_priv,Super_priv FROM  mysql.user;

image

说明:当前用户'root'@'%' Grant_priv的权限状态为"N",说明当前用户没有权限授权;

 

【4】解决方法:UPDATE mysql.user SET Grant_priv='Y'  WHERE User='root';

mysql>  SELECT host,user,password,Grant_priv,Super_priv FROM mysql.user;;
image

 

mysql> UPDATE mysql.user SET Grant_priv='Y'  WHERE User='root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

 

mysql> FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.00 sec)

 

mysql>  select GRANTEE, PRIVILEGE_TYPE, IS_GRANTABLE from information_schema.user_privileges;

image 

 

【5】现在可以进行用户的创建和授权了

mysql> grant  select on  *.* to rep@'%' identified by '123';
Query OK, 0 rows affected (0.00 sec)

 

【总结】其实整个过程就是MySQL的权限问题,当前用户具有Super_priv的权限,但是并没有Grant_priv的权限,所以导致root@‘%’用户在进行授权的时候报错了;

MySQL的权限控制是一个很有趣的问题,后续有时间的话,再整理和大家分享。

........................................................................................................................................................................

本文作者:JOHN,某上市公司DBA,业余时间专注于数据库的技术管理,从管理的角度去运用技术。

ORACLE技术博客:猎人笔记               数据库技术群:367875324 (请备注数据库类型)

........................................................................................................................................................................

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7月前
|
Java 数据库连接 数据库
ERROR 11848
ERROR 11848
80 1
|
15天前
|
域名解析 缓存 网络协议
关于错误ERR_NAME_NOT_RESOLVED
如果以上方法都未能解决问题,你可能需要联系你的网络管理员或互联网服务提供商以获取更多帮助,或者考虑尝试在不同的网络环境中访问网站。
15 0
|
6月前
|
前端开发 JavaScript
Uncaught (in promise) Error: Request failed with status code 500
Uncaught (in promise) Error: Request failed with status code 500
269 0
|
7月前
|
缓存 网络协议 网络虚拟化
关于错误 ERR_NAME_NOT_RESOLVED
关于错误 ERR_NAME_NOT_RESOLVED
363 0
|
11月前
|
JavaScript 前端开发 开发者
Error,Error,到底什么是Error
总所周知,当系统运行出现错误的时候,就会抛出一个 Error ,那么这个 Error 是什么?它是怎么来的?它又是怎么被抛出的?它又是怎么被捕获的?这些问题,我们一起来探讨一下。
127 0
|
11月前
日常安装Error报错汇总
日常安装Error报错汇总
58 0
|
12月前
|
关系型数据库 MySQL
把log_error_verbosity设置为3,调试连接问题ERROR 2003 (HY000):ERROR 1045 (28000):
mysql 8里面使用global log_error_verbosity控制日志记录的详细程度
C中error的使用
C中error的使用
52 0
|
数据库 C++
VS错误的解决解决:LINK fatal error LNK1000: Internal error during IncrBuildImage
VS错误的解决解决:LINK fatal error LNK1000: Internal error during IncrBuildImage
207 0
|
Java 应用服务中间件 Windows