彻底删除MySQL用户

本文最后更新于2015年12月20日,已超过 1 年没有更新,如果文章内容失效,还请反馈给我,谢谢!

搜索关键字:
  • mysql 删除用户 delete drop
  • linux mysql delete user
  • mysql delete vs drop user
参考链接:
参考解答:
(方法一)drop user 用户名;

作用:删除已经存在的用户,例如要删除 abc 这个用户,(drop user abc;)默认删除的是 abc@”%” 这个用户,如果还有其他用户,例如 abc@”localhost”, abc@”ip” ,则不会一起被删除。如果只存在一个用户 abc@”localhost” ,使用语句(drop user abc;)会报错,应该用(drop user abc@”localhost”;)如果不能确定(用户名@机器名)中的机器名,可以在mysql中的user表中进行查找,user列对应的是用户名,host列对应的是机器名。[删除账户及权限]

(方法二)delete from user where user=”用户名” and host=”机器名”;

delete也是删除用户的方法,例如要删除 abc@”localhost” 用户,则可以(delete from mysql.user where user=”abc” and host=”localhost”;)[删除账户]

注:drop删除掉的用户不仅将user表中的数据删除,还会删除诸如db和其他权限表的内容。而(方法二)只是删除了user表的内容,其他表不会被删除,后期如果命名一个和已删除用户相同的名字,权限就会被继承。

==
DROP is used to remove tables (and databases).
DELETE is used to delete rows from tables.
==

=EOF=

声明: 除非注明,ixyzero.com文章均为原创,转载请以链接形式标明本文地址,谢谢!
https://ixyzero.com/blog/archives/2392.html

《彻底删除MySQL用户》上有2条评论

  1. TRUNCATE TABLE 可以完全的清空表的数据, 需要 DROP(删除表) 的权限。
    逻辑上, TRUNCATE TABLE 和 删除所有记录的 DELETE 类似, 也和 删除表(DROP TABLE) 再 重建表(CREATE TABLE) 类似。
    只是为了性能,它使用 DML 方法删除数据的。
    因此它不能回滚数据,它不能触发 DELETE 触发器, 如果有外键依赖与它的话, 将不能执行。

    关于这三个删除全部数据的性能, 经过阅读文档,得出这个结论: drop> truncate > delete 。

    任何事情都有两面性,性能高了,其他方面就弱了,比如安全方面。
    delete 是有事务的,也就是可以恢复数据的,但是其他两个,就不能恢复数据了。

    浅谈 mysql 删除或清空表的数据
    http://github.tiankonguse.com/blog/2015/01/10/mysql-delete-data.html

  2. 从 mysql_secure_installation 脚本中摘出来的一些语句:

    设置从终端输入的MySQL密码
    UPDATE mysql.user SET Password=PASSWORD('$esc_pass') WHERE User='root';
    删除匿名用户
    DELETE FROM mysql.user WHERE User='';
    删除可远程登录的root账户
    DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');
    删除测试数据库
    DROP DATABASE test;
    FLUSH PRIVILEGES;

发表评论

电子邮件地址不会被公开。 必填项已用*标注