mysql用户创建错误42000
Posted
技术标签:
【中文标题】mysql用户创建错误42000【英文标题】:mysql user creation error 42000 【发布时间】:2018-10-11 14:38:32 【问题描述】:我正在尝试创建一个具有所有权限的新用户,所以我在 mysql 中尝试了这段代码:
create user 'user'@'localhost' IDENTIFIED BY 'password'
我得到了这个错误
------------- 创建用户 'user'@'localhost' IDENTIFIED BY 'password'
错误 1227 (42000):访问被拒绝;你需要(至少一个) 此操作的 CREATE USER 权限
注意:我已经阅读了这个问题和答案(并尝试过):
-
MySQL: ERROR 1227 (42000): Access denied - Cannot CREATE USER
【问题讨论】:
您可能需要成为 root 才能执行此操作。选择用户();查看您的登录身份,然后检查您对该用户的权限。 问题是什么?您是否想知道该错误的含义,或者为什么返回该错误?您想知道这是否是预期的行为吗?这是MySQL中的错误吗?这是否记录在 MySQL 参考手册中?您想知道如何创建用户吗? (目前,这更像是一份状态报告,而不是一个问题。) 如何创建具有所有权限的新用户 @flip im 以 root 身份登录 【参考方案1】:查看您登录的用户:
SELECT USER();
要查看您登录的用户的权限:
SHOW GRANTS;
识别具有“CREATE USER”权限的用户:
SELECT u.user, u.host, u.create_user_priv FROM mysql.user u ORDER BY u.user, u.host ;
如果对mysql.user
、mysql.db
等进行了 DML 更改。表,然后我们可以发出这个语句让 MySQL 重新读取表以使这些更改生效:
FLUSH PRIVILEGES ;
要执行CREATE USER
语句,我们需要以具有CREATE USER
权限的用户身份登录。
或者(不太理想)以具有足够权限的用户身份登录,我们可以手动发出 DML INSERT
语句向mysql.user
表添加新行,然后运行FLUSH PRIVILEGES
语句。
或者(作为最后的手段),如果我们没有任何合适用户的登录凭据,我们可以使用 --skip-grant-tables
选项重新启动 MySQL,然后更改 mysql.user
表(使用 DML INSERT和/或 UPDATE 语句),然后再次重新启动 MySQL(这次没有 --skip-grant-tables
选项。)
【讨论】:
以上是关于mysql用户创建错误42000的主要内容,如果未能解决你的问题,请参考以下文章
mysql.connector.errors.ProgrammingError: 1064 (42000): 尝试创建表时 SQL 语法有错误
查看mysql表结构和表创建语句的方法,建表42000错误解决办法
在ds窗口中导入MYSQL数据库时报error 1049 (42000):Unknown database ';'这个错误