Pour pouvoir accéder à MySQL depuis un autre ordinateur, ajoutez la ligne suivante au fichier
/etc/mysql/my.cnf dans la section « [mysqld] » :
bind-address = x.x.x.x
où x.x.x.x est l'adresse ip de l'interface sur laquelle MySQL doit écouter. Cela permet de n'écouter
que sur une ip privée si vous avez plusieurs interfaces réseaux.
Pour forcer mysql à écouter sur tous les ports, il suffit de commenter la ligne "bind-address =
127.0.0.1"
Redémarrez le service après avoir modifier le fichier de configuration :
sudo /etc/init.d/mysql restart
(Vous pouvez mettre 0.0.0.0 si MySQL doit écouter les connexions venant de toutes les interfaces
réseaux, et donc être totalement accessible. Cela peut être dangereux si votre serveur est
connecté à Internet directement.)
Pour créer un utilisateur mysql qui est autorisé à se connecter à distance :
se connecter sur mysql en root :
mysql -u root -p
une fois connecté :
grant all privileges on *.* to 'remote_user'@'123.123.123.123' identified by 'user_password';
le *.* représente l'accès à l'ensemble des Bases de Données, si vous voulez autoriser l'accès de
l'utilisateur à une seule Base de Données, remplacer *.* par le nom de la Base de Données.
le remote_user est le nom de l'utilisateur qui sera créé.
le 123.123.123.123 représente l'ip à partir de laquelle nous pourrons nous connecter à distance.
Pour autoriser l'accès venant de toutes machines (limité par l'authentification), remplacer l'ip par
le symbole '%'.
Pour attribuer un mot de passe à l'utilisateur, changer user_password par le nouveau mot de
passe..
Pour rendre ces privilèges effectifs :
flush privileges;
Il suffit d'ajouter les deux lignes suivantes à la fin de la section « [mysqld] » du fichier
/etc/mysql/my.cnf :
character-set-server=utf8
skip-character-set-client-handshake