Mysql is showing 5 root users:

| root   | %         |
| root   | |
| root   | ::1       |
| root   | localhost |
| root   | mysrverhostname |

What are these 5 for? Are there some I can delete?

1 Answer 1


| root | % | - This is the root user from any computer
| root | | - This is the root user for localhost without resolved IP for IPv4
| root | ::1 | - This is the root user for localhost without resolved IP for IPv6
| root | localhost | - This is the root user for localhost with resolved IP
| root | mysrverhostname | - This is the root user if you connect from the localhost to its externel IP.

You could the delete the first one if you don't like to connect from another computer to this server as root.

All other root users are useful, because you can do the follow types of mysql connections:

  • mysql -h -u root (IPv4)
  • mysql -h ::1 -u root (IPv6)
  • mysql -h localhost (If the mysql server is configured to resolve IPs, the the 2 above would get used)
  • mysql -h -u root (the IP of the server)
  • mysql -h mysqlserver.local -u root (the hostname of the server)

and if I remember correctly the "localhost" user get used if you connect using a socket connection.

  • correct on your "localhost" assumption on unix-like systems Feb 22, 2014 at 16:02
  • @Harald Leithner : for the sake of clarity, could all these "root"access possibilities cause a security issue?
    – Mel
    Feb 22, 2014 at 16:46
  • By default the root user has all permissions, so its not the best idea to let this user get access from all computers on earth. Same thing like let "root" login per ssh. I rename the "root" user to a different name. Feb 22, 2014 at 17:08
  • @Harald-Leithner :thank you for your help
    – Mel
    Feb 23, 2014 at 6:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.