Zunächst müssen Sie manchmal eine Anwendung mit einer Verbindung zur Datenbank erstellen. Dies geschieht, um nicht in die Backend-Entwicklung einzutauchen und sich aufgrund fehlender Hände und Fähigkeiten auf das Frontend zu konzentrieren. Ich gehe nicht davon aus, dass meine Lösung sicher ist, aber sie funktioniert.
Da ich nicht gerne für das Hosting bezahle, habe ich das Netzwerk bei meiner Arbeit genutzt, dort gibt es eine weiße IP. Hier ist seine Struktur:

Ich habe Zugriff auf mehrere Computer genauer auf 192.168.1.2 (aka 192.168.0.2) Linux ist da und auf 192.168.0.3 mit Windows. Im Allgemeinen habe ich für meine Anwendung MySQL gewählt und mir angesehen, was unter Linux läuft. Es wurde bereits dort installiert, aber niemand kennt das Passwort und diejenigen, die es wussten, haben es vergessen (diejenigen, die vor mir gearbeitet haben). Nachdem ich herausgefunden hatte, dass ihn niemand braucht, habe ich es gelöscht und versucht, es neu zu installieren. Es gab nicht genügend Speicher, und da ich einen Monitor und eine Tastatur mit einer Maus anschließen musste, um diesen Fehler zu beheben, beschloss ich, dieses Geschäft zu beenden. Darüber hinaus ist ein Windows-Computer viel leistungsfähiger und außerdem habe ich ihn selbst auf meinem Heim-Laptop. Im Prinzip werde ich die Installation selbst nicht beschreiben, es gibt eine Reihe von Handbüchern und Videos darüber. Nachdem ich MySQL auf einem Windows-Computer installiert hatte, entschied ich mich, die Tabellen vom Laptop auf der Workstation zu sichern.
Dies geschieht wie folgt (in meinem Fall):
mysqldump -uroot -p your_base > dump_file.sql
Dann erstellen wir in der neuen Datenbank die Datenbank und stellen die Sicherung auf dem „neuen“ Computer wieder her.
mysql -h localhost -u root -p
create database your_base; use your_base;
mysql -uroot -p your_base < dump_file.sql
show tables;
Die Sicherungsdatei muss auf einem neuen Computer abgelegt werden und möglicherweise, wenn sie nicht im Dienstprogrammverzeichnis enthalten ist, den vollständigen Pfad dazu. (Ich habe gerade ein Backup auf den Github hochgeladen und es auf einen neuen Computer geklont). Ich würde hinzufügen, wie die Tabellen selbst erstellt werden, aber ich habe die Screenshots nicht gespeichert, und ich denke, es ist selbst für einen 2-3-jährigen Schüler nicht schwierig.
Wenn ich alle Tabellen wiederhergestellt habe, ist es Zeit, den Remotezugriff auf die Datenbank zugänglich zu machen. Im Allgemeinen führten solche Befehle nicht zum Erfolg (es wurden nur Leseberechtigungen zur Auswahl erteilt).
create user 'client'@'%' IDENTIFIED by 'client'; grant select on your_base . * to 'client'@'%'; flush privileges;
Genauer gesagt, ich konnte mich nur mit einem Team mit der Datenbank verbinden.
mysql -h localhost -u client -pclient
aber dieser konnte nicht
mysql -h 192.168.0.3 -u client -pclient
Es passte nicht zu mir und konnte keine Verbindung über diese Adresse und von root herstellen.
Das MySQL-Workbench-Programm hat in den Einstellungen geholfen, localhost in% geändert und es funktioniert, obwohl der Client nicht geholfen hat. Jetzt können Sie von der Konsole oder vom Code aus von jeder Adresse aus eine Verbindung zur Datenbank herstellen.

Sie müssen auch ein Heim- oder Unternehmensnetzwerk einrichten und die Windows-Firewall ausschalten, da Sie diesen Computer sonst nicht einmal anpingen können (nicht, dass er eine Verbindung zur Datenbank herstellt).
Die Hälfte der Arbeit ist erledigt, dann muss ich von zu Hause aus eine Verbindung zur Datenbank herstellen können.
Wie aus dem Netzwerkdiagramm hervorgeht, müssen Sie von 192.168.0.3 zu 192.168.1.1 (Router) ins Internet wechseln. Gehen wir also in die entgegengesetzte Richtung. Richten Sie die Route von 192.168.1.1 bis 192.168.1.2 folgendermaßen ein:

Im Allgemeinen zeigt das Bild nicht - ich werde mit meinen Händen schreiben:
route add 192.168.0.0 mask 255.255.255.0 gateway 192.168.1.2
Dies kann nur in einem Subnetz durchgeführt werden, dh Sie können es nicht sofort an die Adresse 192.168.0.2 oder 192.168.0.3 weiterleiten
Dies ist erforderlich, damit der Router weiß, wo sich das Subnetz 192.168.0.0/24 befindet (lernen Sie die Grundlagen von Netzwerken, dies ist nützlich).
Fügen Sie nun den Probros-Port 3306 (standardmäßig MySQL-Port (falls Sie ihn während der Installation nicht geändert haben)) zur Adresse 192.168.1.2 hinzu

Am schwierigsten bleibt es, die Weiterleitung auf einem Linux-Computer durchzuführen (auf diesem befinden sich zwei Netzwerkkarten 192.168.1.2 (enp3s1-Schnittstelle) und 192.168.0.2 (enp3s0-Schnittstelle), damit die Netzwerkkarten wissen, was sie von 192.168.1.2 auf 192.168.0.2 und dann auf übertragen sollen unsere Windows-Maschine mit 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
Das heißt, 1. Zeile bedeutet, dass wir die erste Verbindung akzeptieren, 2. und 3., dass Sie Pakete auf beiden Seiten starten können, 4. und 5. bedeutet, dass die Zieladresse und die Quelle ersetzt werden. Und voila, Sie können von zu Hause aus über MySQL verbinden. Und schließlich mein C ++ - Code, der dies tut:
Jetzt können Sie dieses Programm sicher an jeden weitergeben und müssen es nicht mehr umschreiben, um lokal zu arbeiten.