搜索关键字:
- mysql 删除用户 delete drop
- linux mysql delete user
- mysql delete vs drop user
参考链接:
- http://stackoverflow.com/questions/10560268/difference-between-drop-user-and-deleting-a-row-from-the-mysql-user-table
- http://stackoverflow.com/questions/8555154/what-is-the-difference-between-drop-and-delete-for-tables
- http://saadiya.blog.51cto.com/2805761/1109847
- http://www.liquidweb.com/kb/remove-a-mysql-user-on-linux-via-command-line/
- http://www.liquidweb.com/kb/remove-permissions-for-a-mysql-user-on-linux-via-command-line/
- =
- http://blog.sae.sina.com.cn/archives/1912
- http://wolfchen.blog.51cto.com/2211749/1243990
- https://dev.mysql.com/doc/refman/5.5/en/privileges-provided.html
- https://dev.mysql.com/doc/refman/5.5/en/grant.html
- http://dev.mysql.com/doc/refman/5.5/en/drop-table.html
- http://dev.mysql.com/doc/refman/5.5/en/delete.html
参考解答:
(方法一)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表的内容,其他表不会被删除,后期如果命名一个和已删除用户相同的名字,权限就会被继承。
root@localhost [(none)]> status; -------------- mysql Ver 14.14 Distrib 5.6.25-73.1, for Linux (x86_64) using 6.3 ... Server version: 5.6.25-73.1 MySQL Community Server (GPL) > select host,user,password from mysql.user; > select host,user,password from mysql.user where user=''; > show grants for ''@localhost; > drop user ''@localhost; > flush privileges; > select host,user,password from mysql.user; > use mysql; > update user set password=password('new-password-here') where user='root'; > select host,user,password from mysql.user;
- https://dev.mysql.com/doc/refman/5.5/en/removing-users.html
- https://dev.mysql.com/doc/refman/5.5/en/drop-user.html
==
DROP is used to remove tables (and databases).
DELETE is used to delete rows from tables.
==
/* 删除表中的[所有]记录 */ delete from mydb.mytable; TRUNCATE TABLE mydb.mytable;
/* 在删除所有记录后重置 autoincrement 的值 */ ALTER TABLE `mytable` AUTO_INCREMENT = 1; SELECT MIN(`column`) FROM `mytable`; SELECT MAX(`column`) FROM `mytable`;
=EOF=
《 “彻底删除MySQL用户” 》 有 2 条评论
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
从 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;
`