[vox-tech] mysql: printing all users and databases

Michael J Wenk vox-tech@lists.lugod.org
Tue, 16 Mar 2004 00:44:18 -0800


On Mon, Mar 15, 2004 at 04:58:45AM -0800, Peter Jay Salzman wrote:
> i see how to create new mysql users and new mysql databases, but how
> does one print all mysql users on a given host?  is there something like
> an /etc/shadoow for mysql?

No.  MySQL keeps all its password and user information in a table in the
mysql database.  If you want to see the table structure, log into
mysql(mysql -p) and run: 

use mysql;
desc user; 

If you want to see a list of users and all associated hosts: 

select user, host from user; 


If you're worried about password security, I wouldn't be.  First off
IIRC mysql uses a secure hash for its passwords.  Secondly, if you keep
permissions on the mysql database locked down, no one can query against
it.  Thirdly, you should never use the same password for the db user as
you use for your system user.  

 
> how does one print the name of all mysql databases on a given host?

mysql -p mysql and either: 

select db, host from db; 

OR 

show databases;