Pour commencer, il y a des moments où vous devez créer une application avec une connexion à la base de données. Ceci est fait pour ne pas plonger dans le développement du backend et se concentrer sur le frontend en raison du manque de mains et de compétences. Je ne prétends pas dire que ma solution sera sûre, mais ça marche.
Comme je n'aime pas payer pour l'hébergement, j'ai utilisé le réseau à mon travail, il y a une IP blanche là-bas. Voici sa structure:

J'ai accès à plusieurs ordinateurs plus précisément à 192.168.1.2 (alias 192.168.0.2) Linux est là et à 192.168.0.3 avec Windows. En général, pour mon application, j'ai choisi mysql et regardé ce qui est sous Linux. Il y était déjà installé, mais personne ne connaît le mot de passe, et ceux qui le savaient ont oublié (ceux qui travaillaient avant moi). Ayant découvert que personne n'avait besoin de lui, je l'ai supprimé et j'ai essayé de le réinstaller. Il n'y avait pas assez de mémoire, et comme je devais y connecter un moniteur et un clavier avec une souris pour corriger cette erreur, j'ai décidé de quitter cette entreprise. De plus, une machine Windows est beaucoup plus puissante et en plus de tout, je l'ai moi-même sur mon ordinateur portable. En principe, je ne décrirai pas l'installation elle-même, il y a un tas de manuels et de vidéos à ce sujet. Ayant installé mysql sur une machine Windows, j'ai décidé de sauvegarder les tables de l'ordinateur portable sur le poste de travail.
Cela se fait comme ceci (dans mon cas):
mysqldump -uroot -p your_base > dump_file.sql
Ensuite, dans la nouvelle base de données, nous créons la base de données et restaurons la sauvegarde sur la «nouvelle» machine.
mysql -h localhost -u root -p
create database your_base; use your_base;
mysql -uroot -p your_base < dump_file.sql
show tables;
Le fichier de sauvegarde doit être placé sur une nouvelle machine et éventuellement si ce n'est pas dans le répertoire des utilitaires, puis le chemin complet vers celui-ci. (Je viens de télécharger une sauvegarde sur le github et de la cloner sur une nouvelle machine). J'ajouterais comment les tableaux eux-mêmes sont créés, mais je n'ai pas enregistré les captures d'écran, et je pense que ce n'est pas difficile, même pour un étudiant de 2-3 ans.
Lorsque j'ai restauré toutes les tables, il est temps de rendre l'accès à distance à la base de données accessible. En général, ces commandes n'ont pas abouti (seules les autorisations de lecture ont été émises à sélectionner)
create user 'client'@'%' IDENTIFIED by 'client'; grant select on your_base . * to 'client'@'%'; flush privileges;
Plus précisément, je ne pouvais me connecter à la base de données qu'avec une équipe,
mysql -h localhost -u client -pclient
mais celui-ci ne pouvait pas
mysql -h 192.168.0.3 -u client -pclient
cela ne me convenait pas et ne pouvait pas se connecter via cette adresse et depuis root.
Le programme mysql workbench a aidé dans les paramètres, changer localhost en% et cela fonctionne, même si le client ne l'a pas aidé. Vous pouvez maintenant vous connecter à la base de données depuis la console ou depuis le code depuis n'importe quelle adresse.

Vous devez également créer un réseau domestique ou d'entreprise et désactiver le pare-feu Windows, sinon vous ne pourrez même pas envoyer de ping à cette machine (pas qu'elle se connecte à la base de données).
La moitié du travail est fait, alors je dois pouvoir me connecter à la base de données depuis chez moi.
Comme vous pouvez le voir sur le schéma du réseau, vous devez alors passer de 192.168.0.3 à 192.168.1.1 (routeur) à Internet, allons dans le sens opposé. Configurez l'itinéraire de 192.168.1.1 à 192.168.1.2 comme ceci:

En général, l'image ne montre pas - j'écrirai avec mes mains:
route add 192.168.0.0 mask 255.255.255.0 gateway 192.168.1.2
Cela ne peut être fait que sur un seul sous-réseau, c'est-à-dire que vous ne pouvez pas le transmettre immédiatement à l'adresse 192.168.0.2 ou 192.168.0.3
Ceci est nécessaire pour que le routeur sache où se trouve le sous-réseau 192.168.0.0/24 (découvrez les bases des réseaux, cela est utile).
Ajoutez maintenant le port probros 3306 (port mysql par défaut (si vous ne l'avez pas modifié lors de l'installation)) à l'adresse 192.168.1.2

Il reste à faire le plus difficile est de faire le transfert sur une machine Linux (il y a deux cartes réseau 192.168.1.2 dessus (interface enp3s1) et 192.168.0.2 (interface enp3s0) pour que les cartes réseau sachent quoi les transférer de 192.168.1.2 à 192.168.0.2, puis à notre machine Windows avec mysql.
sudo iptables -A FORWARD -i enp3s1 -o enp3s0 -p tcp --syn --dport 3306 -m conntrack --ctstate NEW -j ACCEPT sudo iptables -A FORWARD -i enp3s1 -o enp3s0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT sudo iptables -A FORWARD -i enp3s0 -o enp3s1 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT sudo iptables -t nat -A PREROUTING -i enp3s1 -p tcp --dport 3306 -j DNAT --to-destination 192.168.0.3 sudo iptables -t nat -A POSTROUTING -o enp3s0 -p tcp --dport 3306 -d 192.168.0.3 -j SNAT --to-source 192.168.1.2 sudo service iptables-persistent save
C'est-à-dire 1ère ligne signifie que nous acceptons la première connexion, 2ème et 3ème que vous pouvez démarrer des paquets des deux côtés, 4ème et 5ème signifie remplacer l'adresse de destination et la source. Et voila, vous pouvez vous connecter depuis chez vous via mysql. Et enfin, mon code C ++ qui fait ceci:
Vous pouvez maintenant déposer ce programme en toute sécurité et ne pas avoir à le réécrire pour qu'il fonctionne localement.