Pour exposer MySQL à autre chose que localhost, vous devrez avoir la ligne suivante
Pour mysql version 5.6 et inférieure
sans commentaire dans /etc/mysql/my.cnf
et assigné à l'adresse IP de votre ordinateur et non à celle de la boucle.
Pour mysql version 5.7 et supérieure
sans commentaire dans /etc/mysql/mysql.conf.d/mysqld.cnf
et assigné à l'adresse IP de votre ordinateur et non à celle de la boucle.
#Replace xxx with your IP Address
bind-address = xxx.xxx.xxx.xxx
Ou ajouter un bind-address = 0.0.0.0
si vous ne souhaitez pas spécifier l'IP
Puis arrêtez et redémarrez MySQL avec la nouvelle entrée my.cnf. Une fois en marche, allez dans le terminal et entrez la commande suivante.
lsof -i -P | grep :3306
Il devrait en ressortir quelque chose comme ceci, avec votre adresse IP réelle dans les xxx.
mysqld 1046 mysql 10u IPv4 5203 0t0 TCP xxx.xxx.xxx.xxx:3306 (LISTEN)
Si la déclaration ci-dessus renvoie correctement, vous serez alors en mesure d'accepter les utilisateurs distants. Cependant, pour qu'un utilisateur distant puisse se connecter avec les privilèges corrects, il faut que cet utilisateur soit créé à la fois dans le localhost et dans le '%' comme dans.
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass';
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';
alors,
GRANT ALL ON *.* TO 'myuser'@'localhost';
GRANT ALL ON *.* TO 'myuser'@'%';
et enfin,
FLUSH PRIVILEGES;
EXIT;
Si vous n'avez pas créé le même utilisateur que ci-dessus, lorsque vous vous connectez localement, vous pouvez hériter des privilèges de la base localhost et avoir des problèmes d'accès. Si vous voulez restreindre l'accès de myuser, vous devez vous renseigner sur la syntaxe de l'instruction GRANT. ICI Si vous passez à travers tout cela et que vous avez toujours des problèmes, postez une sortie d'erreur supplémentaire et les lignes appropriées de my.cnf.
NOTE : Si lsof ne renvoie pas ou n'est pas trouvé vous pouvez l'installer ICI en fonction de votre distribution Linux. Vous n'avez pas besoin de lsof pour faire fonctionner les choses, mais il est extrêmement pratique lorsque les choses ne fonctionnent pas comme prévu.
MISE À JOUR : Si, même après avoir ajouté/modifié l'option bind-address
en my.cnf
n'a pas fonctionné, alors allez le modifier à l'endroit où il a été déclaré à l'origine :
/etc/mysql/mariadb.conf.d/50-server.cnf