当前位置:  开发笔记 > 编程语言 > 正文

如何获取MySQL用户帐户列表

如何解决《如何获取MySQL用户帐户列表》经验,为你挑选了12个好方法。

我正在使用MySQL命令行实用程序,可以在数据库中导航.现在我需要查看用户帐户列表.我怎样才能做到这一点?

我正在使用MySQL版本5.4.1.



1> George Clagh..:

使用此查询:

SELECT User FROM mysql.user;

这将输出如下表格:

+-------+
| User  |
+-------+
| root  |
+-------+
| user2 |
+-------+

正如Matthew Scharley 在对此答案的评论中指出的那样,User如果您只想查看唯一的用户名,则可以按列分组.


我认为可能有必要对'User`进行分组,只获得唯一的用户值,因为每个`user` @`host`条目都有一个单独的行.
@barrycarter`DELETE FROM mysql.user;`更好的是'WHERE user ='someuser'和host ='somehost';`如果你``DELETE FROM mysql.user;`,所有用户都不见了.在下一次mysql重启后登录或`FLUSH PRIVILEGES;`从内存中消除用户.这是我的一篇关于负责任地"删除来自mysql.user"的帖子的例子:http://dba.stackexchange.com/questions/4614/cannot-drop-anonymous-user-from-mysql-user/4615# 4615
而不是分组你可以只使用`DISTINCT`关键字:`SELECT DISTINCT user FROM mysql.user;`
如何在没有sql查询的情况下找到相同的信息?
@Geoffrey`为'用户'@'主持人'显示奖励;`

2> spkane..:

我发现这种格式最有用,因为它包含了主机字段,这在MySQL中很重要,可以区分用户记录.

select User,Host from mysql.user;


@Packer当你从不同的服务器连接时,`host`开始起作用.可以授予对''packer'@'example.com'和''packer'@'google.com'的不同访问权限.

3> RolandoMySQL..:

用户帐户包括用户名和主机级访问权限.

因此,这是提供所有用户帐户的查询

SELECT CONCAT(QUOTE(user),'@',QUOTE(host)) UserAccount FROM mysql.user;


一个例子:`user @ host`格式用于设置密码.从[`SET PASSWORD`](http://dev.mysql.com/doc/refman/5.0/en/set-password.html)命令中省略主机会产生错误.`SET PASSWORD FOR wordpressuser = PASSWORD('...');`产生错误`ERROR 1133(42000):在用户表中找不到任何匹配的行.包括主机,它的工作原理.`set PASSWORD FOR wordpressuser @ localhost = PASSWORD('...');`生成`查询OK,0行受影响(0.00秒)`.
这基本上与[spkane的回答](http://stackoverflow.com/a/11367654/111424)相同.连接用户列和主机列有什么好处?
无论反对者可能抱怨什么,最好的答案.我唯一想改变的就是将"ORDER BY用户"附加到它上面.

4> Nicolas Manz..:

避免用户从不同来源连接时重复使用:

select distinct User from mysql.user;



5> Jesse Vogt..:

如果您指的是实际的MySQL用户,请尝试:

select User from mysql.user;



6> VPK..:

MySQL将用户信息存储在自己的数据库中.数据库的名称是MySQL.在该数据库内,用户信息位于表中,名为数据集user.如果要查看在MySQL用户表中设置的用户,请运行以下命令:

SELECT User, Host FROM mysql.user;

+------------------+-----------+
| User             | Host      |
+------------------+-----------+
| root             | localhost |
| root             | demohost  |
| root             | 127.0.0.1 |
| debian-sys-maint | localhost |
|                  | %         |
+------------------+-----------+



7> Etzeitet..:
SELECT * FROM mysql.user;

这是一张大桌子,所以你可能希望在你选择的领域更具选择性.


如果您不希望人们通过网络连接,旧标准是删除所有这些.如今,似乎建议保留localhost,因为它们无法通过网络访问; 这意味着你应该*保留*所有这些.
我有3个root用户和不同的主机.`localhost`,`127.0.0.1`和​​`:: 1`.我必须保留哪一个,我必须删除哪些内容?谢谢!

8> sandip divek..:

以root身份登录mysql并输入以下查询

select User from mysql.user;

+------+
| User |
+------+
| amon |
| root |
| root |
+------+



9> Brad Dre..:

mysql.db表在确定用户权限时可能更重要.我想如果你在GRANT命令中提到一个表,就会创建一个条目.在我的情况下,当mysql.users表显然能够连接和选择等时,它没有显示用户的权限.

mysql> select * from mysql.db;
mysql> select * from db;
+---------------+-----------------+--------+-------------+-------------+-------------+--------
| Host          | Db              | User   | Select_priv | Insert_priv | Update_priv | Del...



10> Tobias Holm..:

我使用它来对用户进行排序,因此更容易发现允许的主机:

mysql> SELECT User,Host FROM mysql.user ORDER BY User,Host;



11> 小智..:

彼得和杰西是正确的,但只要确保你首先选择mysql数据库.

use mysql;

select User from mysql.user;

应该做你的伎俩


如果你将表的范围扩展到mysql数据库,那么就不必使用mysql;` 你可以从mysql.user中选择用户;`
添加`use mysql;`就是这样你可以使用`select user from user;`而不是`select user from mysql.user;`因为它通常是一次性查询,所以不需要使用mysql db

12> 小智..:

这将显示唯一用户列表:

SELECT DISTINCT User FROM mysql.user;

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有