Qu’est ce que les MySQL et pourquoi un accès à distance pourrait être nécessaire
MySQL est un célèbre système de gestion de base de données. Le cas souvent utilisé - la base de données et les autres fichiers de projet sont stockés sur le même serveur. Ainsi, restreindre l'accès à partir de l'hôte local uniquement est normal, il n'est pas nécessaire d'autoriser l'accès au réseau pour des raisons de sécurité. Mais si vous avez une infrastructure multi-serveurs, vous devez modifier les paramètres par défaut.
Exigences
Pour autoriser l'accès « de l'extérieur » au serveur de base de données, vous avez besoin :
- Server sous le système d'exploitation réel (par exemple Ubuntu 20.04);
- Accès au compte système "root" ;
- Accès privilégié au service de base de données ou possibilité de modifier l'autorisation de la base de données.
Déverrouillage de l'accès au réseau
Pour autoriser les connexions "extérieures" au serveur de base de données, veuillez suivre :
Connectez-vous à votre serveur en tant qu'utilisateur privilégié et assurez-vous que le port est utilisé par MySQL:
netstat -tlnp | grep my
Comme nous le voyons, le port principal est 3306. Laissons-le entrer firewall paramètres:
ufw allow 3306
Trouvez le fichier de configuration dont l'adresse d'écoute est déclarée :
grep -r "bind" /etc/mysql/
remplacer adresse de liaison valeur de la directive à 0.0.0.0 et vérifiez le résultat :
sed -i.bak -e 's/127.0.0.1/0.0.0.0/g' /etc/mysql/mysql.conf.d/mysqld.cnf
cat /etc/mysql/mysql.conf.d/mysqld.cnf | grep bind
Redémarrez le service :
service mysql restart
L'étape suivante est facultative. Vous pouvez vous authentifier dans la base de données en tant qu'utilisateur existant ou surtout en créer un nouveau et lui accorder des privilèges :
mysql # enter to the service
CREATE USER <username>; # new account creation
ALTER USER <username> IDENTIFIED WITH mysql_native_password BY '<password>'; # set password
GRANT ALL ON testdb.* TO remoteuser; # grant permissions
FLUSH PRIVILEGES; # apply privileges
Contrôle d'accès
Pour vérifier le résultat, connectez-vous à la console du serveur distant et exécutez :
mysql -h <database_server_IP> -u<login> -p
Tapez ou collez ensuite votre mot de passe de base de données pour "tomber" dans le serveur de base de données.
Maintenant, vous pouvez par exemple consulter le contenu de la base de données :
show databases;
show tables in <database_name>;
select * from <database_name>.<table_name>;
Résumé
Après avoir lu cet article, vous saviez comment accéder à des connexions extérieures à votre MySQL serveur et gérez vos données à distance.