Επίλυση του προβλήματος στην περίπτωση για την οποία λαμβάνουμε το παρακάτω μήνυμα:

host xxx.xxx.xxx.xxx is not allowed to connect to this mysql server

Η προεπιλεγμένη ρύθμιση του MySQL server είναι να ακούει στο 127.0.0.1.
Για αλλαγή:
Στο my.ini (windows) ή my.cnf προσθέτουμε στο section [mysqld] τη γραμμή bind-address=

[mysqld]

# The next three options are mutually exclusive to SERVER_PORT below.
# skip-networking
# enable-named-pipe
# The Pipe the MySQL Server will use
# socket=mysql
# The TCP/IP Port the MySQL Server will listen on
port=3306
# Path to installation directory. All paths are usually resolved relative to this.
# basedir=”C:/Program Files/MySQL/MySQL Server 5.6/”
# Path to the database root
datadir=”C:/WorkSpace/MySQLdatabases/data/”
# The default character set that will be used when a new schema or table is
# created and no character set is defined
character-set-server=utf8

# Αν θέλουμε να ακούει μόνο στην 172.10.20.4 τότε
bind-address=172.10.20.4

# Αν θέλουμε να ακούει σε όλες (και στην 127.0.0.1 και στην 172.10.20.4 κα) τότε
bind-address=0.0.0.0

Επίσης στα δικαιώματα της ΒΔ (Users and Privieges) θα πρέπει να έχουμε επιτρέψει ο χρήστης root να μπορεί να συνδέεται από την σχετική IP διεύθυνση ή απ’ όλες τις διευθύνσεις.
Έτσι :
στην τυπική περίπτωση (127.0.0.1) τα δικαιώματα είναι:

root localhost
root 127.0.0.1

για συγκεκριμένη IP (172.10.20.4) μπορούμε να προσθέσουμε:

root localhost
root 127.0.0.1

root 172.10.20.4

αν θέλουμε να ακούει σε όλες τις διευθύνσεις (περίπτωση bind-address=0.0.0.0) τότε αρκεί :

root %

Αντίστοιχα προσθέτουμε και τους λοιπούς χρήστες.

Σχετικό

How to Allow MySQL Client to Connect to Remote MySQL server

MySQL Ρυθμίσεις για remote πρόσβαση.doc