Pour exposer MySQL à autre chose que localhost, vous devrez avoir la ligne suivante
Pour mysql version 5.6 et inférieure
décommenté dans /etc/mysql/my.cnf
et attribué à l'adresse IP de vos ordinateurs et non au bouclage
Pour mysql version 5.7 et supérieure
décommenté dans /etc/mysql/mysql.conf.d/mysqld.cnf
et attribué à l'adresse IP de vos ordinateurs et non au bouclage
#Replace xxx with your IP Address
bind-address = xxx.xxx.xxx.xxx
Ou ajoutez une bind-address = 0.0.0.0
si vous ne voulez pas spécifier l'IP
Ensuite, arrêtez et redémarrez MySQL avec la nouvelle entrée my.cnf. Une fois en cours d'exécution, accédez au terminal et entrez la commande suivante.
lsof -i -P | grep :3306
Cela devrait revenir quelque chose comme ça avec votre adresse IP réelle dans les xxx
mysqld 1046 mysql 10u IPv4 5203 0t0 TCP xxx.xxx.xxx.xxx:3306 (LISTEN)
Si l'instruction ci-dessus revient correctement, vous pourrez alors accepter des utilisateurs distants. Cependant, pour qu'un utilisateur distant se connecte avec les privilèges corrects, vous devez avoir créé cet utilisateur à la fois dans l'hôte local et '%' 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 base localhost et avoir des problèmes d'accès. Si vous souhaitez restreindre l'accès de myuser, vous devez lire la syntaxe de l'instruction GRANT ICI Si vous parvenez à tout cela et que vous rencontrez toujours des problèmes, publiez une sortie d'erreur supplémentaire et les lignes appropriées my.cnf.
REMARQUE :Si lsof ne revient 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 c'est extrêmement pratique lorsque les choses ne fonctionnent pas comme prévu.
MISE À JOUR :Si même après avoir ajouté/modifié le bind-address
dans my.cnf
n'a pas fonctionné, alors allez le changer à l'endroit où il a été initialement déclaré :
/etc/mysql/mariadb.conf.d/50-server.cnf