Se connecter à un serveur externe MySQL


Il peut arriver d’avoir à se connecter sur une base de données MySQL qui n’est pas locale (sur notre propre machine). Malheureusement, la configuration de MySQL peut empêcher les connexions à distance.

Voici comment modifier la configuration de MySQL sur un serveur Ubuntu afin d’être en mesure de s’y connecter à partir d’un autre ordinateur.

La première étape consiste à se créer un usager MySQL qui peut se connecter à distance. Si l’on désire être en mesure de se connecter à partir de n’importe quel ordinateur, il faut exécuter une ligne similaire à celle-ci dans le terminal MySQL :

create user 'fred'@'%' identified by 'xyz';

Si vous avez une adresse IP fixe, ou si vous êtes dans le même réseau que votre machine ayant la base de données MySQL, vous pourriez restreindre la connexion à cette machine uniquement.

create user 'fred'@'158.123.43.11' identified by 'xyz';

N’oubliez pas d’assigner les droits nécessaires à l’usager…

grant all on example_db.* to 'fred'@'%'; (ou 'fred'@'158.123.43.11')

Finalement, il faut modifier la configuration de MySQL pour lui permettre les connexions externes.

Pour les versions de MySQL <= 5.6, le fichier à modifier est :
– /etc/mysql/my.cnf

Pour les versions de MySQL plus récentes (>= 5.7) :
–  /etc/mysql/mysql.conf.d/mysqld.cnf

La seule modification à faire est de modifier la ligne :

bind-address = 127.0.0.1
# pour ceci :
bind-address = 0.0.0.0

N’oubliez pas de redémarrer MySQL!

Sur Ubuntu <= 14

service apache2 restart

Sur Ubuntu >= 16

systemctl restart mysql.service

Si le Firewall est activé, vous devrez également ouvrir le port 3306 de cette façon:

ufw allow 3306
,