mysql

mysql: connection refused when trying to connect to localhost using remote IP


When I try to connect to a local mysql database using it's remote ip-address I get a access denied. When I try to connect to that same database from an external machine, it works without any problems. When I connect to the local database using localhost, it works perfectly as well. E.g., if the database server has the ip 1.2.3.4 then I get the following results:

# From the db server
mysql -u username -h localhost -p #works perfectly
mysql -u username -h 127.0.0.1 -p #works perfectly
mysql -u username -h 1.2.3.4 -p #Access denied

# From any other machine
mysql -u username -h 1.2.3.4 -p #works perfectly

What can I do to allow local access to my database using its remote ip-address? The OS of the database server is Fedora 15 and the MySQL version is 5.5.23.


Solution

  • I found the solution to my problem myself, but I still don't quite understand why it didn't work:

    I granted privileges to that user on the hosts % and localhost:

    # Before
    +-----------------+------------+
    | Host            | User       |
    +-----------------+------------+
    | %               | username   |
    | localhost       | username   |
    +-----------------+------------+
    

    With these settings I got the results I showed above. When I granted privileges to that user on host it suddenly did work.

    # After
    +-----------------+------------+
    | Host            | User       |
    +-----------------+------------+
    | %               | username   |
    | localhost       | username   |
    | <myIpAddress>   | username   |
    +-----------------+------------+
    

    Apparently % does work for remote connections, but not for local connections.