Before you continue playing with mysqladmin, you need to make sure your installation is not intentionally giving away access.
For starters, can you login to mysql like this?
# mysql <hit enter>
If you can get just like that, run this command:
SELECT USER(),CURRENT_USER();
- USER() reports how you attempted to authenticate in MySQL
- CURRENT_USER() reports how you were allowed to authenticate in MySQL
If CURRENT_USER() return a user and host where the user is blank, then you were allowed in as an anonymous user. At that point, you can remove anonymou users with this:
DELETE FROM mysql.user WHERE user='';
FLUSH PRIVILEGES;
Now, locate all users with no password with this:
SELECT user,host,password FROM mysql.user;
If any users have no password, you can issue new passwords for user using mysqladmin or you could just assign them as follows:
UPDATE mysql.user SET password=PASSWORD('whateverpassword') WHERE user='...' AND host='...';
FLUSH PRIVILEGES;
Now, check for remote users
SELECT user,host FROM mysql.user WHERE host='%';
If you see any, run this:
DELETE FROM mysql.user WHERE host='%';
FLUSH PRIVILEGES;
Make sure when all is said and done that at least root@localhost and/or [email protected] exist and have a password
SELECT user,host,password FROM mysql.user WHERE user='root';
I could probably go on. Here are other posts I have about stuff like this: