Using % for host when creating a MySQL user

database, host, localhost, mysql, wildcard

Solution

`localhost` is special in MySQL, it means a connection over a UNIX socket (or named pipes on Windows, I believe) as opposed to a TCP/IP socket. Using `%` as the host does not include `localhost`, hence the need to explicitly specify it.

Problem

My MySQL database needs two users: appuser and support. One of the application developers insists that I create four accounts for these users: ``` appuser@'%' appuser@'localhost' support@'%' support@'localhost' ``` For the life of me I can't figure out why he thinks we need this. Wouldn't using the wildcard as the host take care of the 'localhost'? Any ideas? (Using MySQL 5.5 here)

Original source