解决mysql删除用户 bug的问题

作者在使用mysql添加用户的时候,发现用户名给我写错了

强迫症的我,必须要改过来,但是发现删除用户的时候,命令是成功的

但是在此创建同名用户的时候,会报错,网上查了很多,说这是mysql的官方bug,不知道是作者水平不够没能理解到那个bug,还是真的解决了这个问题,下面和大家分享,欢迎大家一起讨论

删除了user的用户之后 无法再次创造相同的用户名

在mysql 数据库中有一张user表,可以查询到所有的用户和用户信息,删除里面的用户信息以及你赋予那个用户的什么权限就能完全的删除那个用户了

解决方法

注意这里多用户的权限进行了多次的删除之后,发现我创建的时候,这个用户的是% 允许远程连接的,所以最后一次删除成功了

刷新用户权限

FLUSH PRIVILEGES;

这个时候你再次创建同名的用户mysql 就不会报错了

补充:mysql 删除用户(两种实现方案)

drop

drop user XXX;删除已存在的用户,默认删除的是'XXX'@'%'这个用户,如果还有其他的用户如'XXX'@'localhost'等,不会一起被删除。如果要删除'XXX'@'localhost',使用drop删除时需要加上host即drop user 'XXX'@'localhost'。

delete

delete from user where user='XXX' and host='localhost';其中XXX为用户名,localhost为主机名。

区别

drop不仅会将user表中的数据删除,还会删除其他权限表的内容。而delete只删除user表中的内容,所以使用delete删除用户后需要执行FLUSH PRIVILEGES;刷新权限,否则下次使用create语句创建用户时会报错

补充:mysql创建用户报错[Err] 1396 - Operation CREATE USER failed for 'test'@'%'的解决方法

问题:

执行mysql创建用户语句CREATE USER test IDENTIFIED BY 'test'; 报错, 错误信息为

[Err] 1396 - Operation CREATE USER failed for 'test'@'%'

解决步骤:

1.创建过test用户。

2.查询后发现无此用户,则执行FLUSH PRIVILEGES;然后重新执行创建语句。

3.如果还是报错,则执行drop user 'test'@'%';然后重新执行创建语句。

4.创建成功。

可能原因:

1.用户已存在。

2.使用delete语句删除用户后没有刷新权限。

3.用户不存在,但是存在该用户的权限信息。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • MySQL 创建用户、授权用户、撤销用户权限、更改用户密码、删除用户(实用技巧)

    MySQL创建用户并授权及撤销用户权限 运行环境:MySQL5.0 一.创建用户 命令: CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 说明:username - 你将创建的用户名, host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%. password - 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆mysql服务器.

  • MySql安装与配置方法(MySQL添加用户、删除用户与授权)

    1.安装MySql 目前MySQL有两种形式的文件,一个是msi格式,一个是zip格式的.msi格式的直接点击setup.exe就好,按照步骤进行.但是很多人下了zip格式的解压发现没有setup.exe,本人下载的也是这样的,不知道怎么安装,点哪里都没有反应.只能寻求度娘帮助,然后才了解到,这种文件的安装方式. 1)将文件解压到自己认为合适的位置. 2)在目录下新建一个my.ini(文件中已经有一个mydefault.ini文件),新建后会将原来文件的作用覆盖掉.在文件中粘贴一下代码: [my

  • 在WIN命令提示符下mysql 用户新建、授权、删除,密码修改

    首先要声明一下:一般情况下,修改MySQL密码,授权,是需要有mysql里的root权限的. 注:本操作是在WIN命令提示符下,phpMyAdmin同样适用. 用户:phplamp 用户数据库:phplampDB 1.新建用户 //登录MYSQL @>mysql -u root -p @>密码 //创建用户 mysql> insert into mysql.user(Host,User,Password) values("localhost","phplam

  • mysql 创建root用户和普通用户及修改删除功能

    方法1: 用SET PASSWORD命令 mysql -u root mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass'); 方法2:用mysqladmin mysqladmin -u root password "newpass" 如果root已经设置过密码,采用如下方法 mysqladmin -u root password oldpass "newpass" 方法3: 用UPDA

  • 初始化MySQL用户(删除匿名用户)

    安装完MySQL后,系统默认会创建一个不需要密码的root用户,和一个无用户名无密码的匿名用户(Anonymous Account).进行下面的初始化操作以合理授权,增强安全. 设置root密码先以root身份登入mysql -u root,设置root密码: SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password'); 创建新用户# 创建用户和设置密码 CREATE USER '新用户'@'localhost' IDENTIFI

  • MySQL中用户授权以及删除授权的方法

    用户授权方法 你可以通过发出GRANT语句增加新用户: shell> mysql --user=root mysql mysql> GRANT ALL PRIVILEGES ON *.* TO monty@localhost IDENTIFIED BY 'something' WITH GRANT OPTION; mysql> GRANT ALL PRIVILEGES ON *.* TO monty@"%" IDENTIFIED BY 'something' WITH

  • MySQL两种删除用户语句的区别(delete user和drop user)

    Tip: 在MySQL中,我们经常需要创建用户和删除用户,创建用户时,我们一般使用create user或者grant语句来创建,create语法创建的用户没有任何权限,需要再使用grant语法来分配权限,而grant语法创建的用户直接拥有所分配的权限.在一些测试用户创建完成之后,做完测试,可能用户的生命周期就结束了,需要将用户删除,而删除用户在MySQL中一般有两种方法,一种是drop user,另外一种是delete from mysql.user,那么这两种方法有什么区别呢?我们这里通过例

  • mysql5.7创建用户授权删除用户撤销授权

    一, 创建用户: 命令: CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 说明:username - 你将创建的用户名, host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%. password - 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器. 例子: CREATE USER 'dog'@'localhost' ID

  • 解决mysql删除用户 bug的问题

    作者在使用mysql添加用户的时候,发现用户名给我写错了 强迫症的我,必须要改过来,但是发现删除用户的时候,命令是成功的 但是在此创建同名用户的时候,会报错,网上查了很多,说这是mysql的官方bug,不知道是作者水平不够没能理解到那个bug,还是真的解决了这个问题,下面和大家分享,欢迎大家一起讨论 删除了user的用户之后 无法再次创造相同的用户名 在mysql 数据库中有一张user表,可以查询到所有的用户和用户信息,删除里面的用户信息以及你赋予那个用户的什么权限就能完全的删除那个用户了 解

  • MySQL删除外键时报错Error Code:1091. Can‘t DROP ‘XXX‘的解决方法

    解决MySQL删除外键时报错Error Code: 1091. Can't DROP 'XXX'; check that column/key exists 长期不写基础的 MySQL 代码,笔者也开始犯一些低级错误.最近,笔者在尝试将表中某列的外键约束删除时,MySQL 却一直报该列本就不存在的错误. 笔者报错时的运行环境: MySQL 8.0.27 Windows 10 教育版 Error Code: 1091. Can't DROP 'XXX'; check that column/key

  • mysql 新增、删除用户和权限分配

    1. 新增用户 复制代码 代码如下: mysql>insert into mysql.user(Host,User,Password) values("localhost","lionbule",password("hello1234"));mysql>flush privileges; 2. 修改用户密码 复制代码 代码如下: mysql>update mysql.user set password=password('new

  • Mysql删除重复数据保留最小的id 的解决方法

    在网上查找删除重复数据保留id最小的数据,方法如下: DELETE FROM people WHERE peopleName IN ( SELECT peopleName FROM people GROUP BY peopleName HAVING count(peopleName) > 1 ) AND peopleId NOT IN ( SELECT min(peopleId) FROM people GROUP BY peopleName HAVING count(peopleName) >

  • MSSQL中删除用户时数据库主体在该数据库存中拥有架构 无法删除的解决方法

    在ms sql2005 下面删除一个数据库的用户的时候提示 "数据库主体在该数据库中拥有架构,无法删除" 的错误解决方案 1.在 安全性 -> 架构 下面看有没有该用户存在,如果有就删除 再试试在用户下面看能不能把该用户删掉,如果不行就用下面的文法 运行下SQL语句 ALTER AUTHORIZATION ON SCHEMA::db_owner TO dbo; --然后手动删除就可以了. 因为选定的用户拥有对象,所以无法除去该用户"解决方法 复制代码 代码如下: use

  • MySQL REVOKE实现删除用户权限

    在 MySQL 中,可以使用 REVOKE 语句删除某个用户的某些权限(此用户不会被删除),在一定程度上可以保证系统的安全性.例如,如果数据库管理员觉得某个用户不应该拥有 DELETE 权限,那么就可以删除 DELETE 权限. 使用 REVOKE 语句删除权限的语法格式有两种形式,如下所示: 1)第一种 删除用户某些特定的权限,语法格式如下: REVOKE priv_type [(column_list)]... ON database.table FROM user [, user]...

随机推荐