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