Creating MySQL Users with Host as %
In MySQL, configuring user privileges requires specifying the host from which the user can access the database. When creating users, it's common practice to use the wildcard character (%) as a universal host. However, in some cases, additional accounts may be needed for specific purposes.
Problem:
A MySQL database requires two user accounts: appuser and support. The application developers insist on creating four accounts:
appuser@'%' appuser@'localhost' support@'%' support@'localhost'
The question arises: why are these additional accounts necessary?
Answer:
In MySQL, the host value 'localhost' has a特殊含义. It represents a connection via a UNIX socket (or named pipes on Windows). Using the % wildcard as the host does not include localhost connections. Therefore, explicitly specifying 'localhost' is essential to allow access from this type of connection.
This distinction becomes crucial when using certain tools or applications that connect to MySQL via UNIX sockets. For example, some development and management tools may rely on localhost connections by default. By creating separate accounts for '%' and 'localhost', you ensure that both types of connections are covered and that users have the necessary privileges.
The above is the detailed content of Why Create Separate MySQL User Accounts for \'%\' and \'localhost\'?. For more information, please follow other related articles on the PHP Chinese website!