MySQL kein externer Zugriff

GH8373

Benutzer
Beiträge
8
Hallo,

leider bekomme ich auf meine MySQL Datenbank keinen externen Zugriff. Ich habe bereits einen neuen Benutzer mit dem Namen „Test“ angelegt und alle Rechte erteilt. Die Anmeldedaten sind korrekt, bekomme aber „Access denied Test@Localhost Password using: Yes“ angezeigt. In der my.cnf habe ich unter XAMPP die bind-address=0.0.0.0 angelegt. PHPMyAdmin hat für den Benutzer als Host „localhost“ und „%“ eingetragen. Die Mac Firewall ist deaktiviert und in der FRITZ!Box ist über die Geräte IP der Port 3306 freigegeben. Bin hier langsam am Verzweifeln…

Gruß
 
Werbung:
1.: Wie verstehst du "extern"?

ich denke jetzt an:
Port-Forwarding?
Host-Adressen mit Berechtigung hinzufügen? (ich denke, das ist nicht nur bei PgSQL dabei)
 
Ich möchte, dass 3CX auf meine Datenbank zugreifen kann. Ich schaffe es nicht einmal über das Mac Terminal Befehl „ncat“

Wird wohl Port-Forwarding sein - ja
 
Hast du den Server live bei dir zuhause?

Kenne mich bei 3CX nicht aus... schnelles googeln ergibt mir den Eindruck, dass du den Server "extern" hast...
Wenn du zwingend MySQL verwenden musst, kann ich dir nur das entsprechende PHP-Programm dazu empfehlen ;)

Falls du aber tiefer in Datenbanken und Co einschreiten willst, darf ich zu einem wechsel auf einen anderen Datenbank-Server emfephlen.

Anbei würde ich bei MySQL mit Port-Forwarding vorsichtig sein, habe oft gesagt bekommen, dass MySQL da nicht die sicherst Variante ist...
 
Der XAMPP Server wird bei mir zu Hause auf dem Mac betrieben.

Ein anderer Server ist für mich keine Option, da ich bereits alles mit großer Mühe eingerichtet habe. Ansonsten verabschiede ich mich von meinem Vorhaben und nehme es so hin in PHPMyAdmin alle Daten selbst in die Datenbank eintragen zu müssen.
 
Xampp (ich nutze jedoch Windows):

da kann man im Control-Panel MySQL als 2. Service starten, neben dem Webserver Apache.

1684453611737.png

Anbei:
Man kann auch in Xampp die Anwendung so umschreiben, dass er sich mit einer PG-SQL-Datenbank verbinden kann ;)

EDIT:
wenn du nur lokal arbeitest, brauchst du auch kein Port-Forwarding, weil das eine Einstellung beim Router ist, damit man den Port auch von außerhalb erreichen kann (ist jedoch nur eine Variante, wie man das Ziel erreichen kann)
 
Genau und da auf config, dann kann man in der my.cnf die bind-address=0.0.0.0 einfügen. Bringt aber nichts, da oben genannte Fehlermeldung.
Vielleicht liegt es auch am Mac, hab einfach keine Ahnung wo nach dem Fehler zu suchen ist.


In meinem Fall kann ich aber nicht nur lokal arbeiten. Die Datenbank ist lokal und 3CX liegt auf einem komplett anderen Server in der Cloud.
 
das bedeutet, du musst den Port von MySQL forwarden, damit dein 3CX Server (auf welchem die Homepage ist, denke ich) zugreifen kannst.

oder verstehe ich das wiederum wieder falsch, und du sammelst 2x eine idente Datenbank?

EDIT: das würde bedeuten, du musst den Rechner, auf welchem die Datenbank läuft immer laufen haben, damit der Webserver darauf zugreifen kann?
Mir erscheint da vieles fragwürdiges ... :/
 
Der Rechner läuft zu den Zeiten, in dieser ich den Zugriff auf die Datenbank benötige.
Die MySQL Datenbank liegt auf dem Rechner zu Hause.


Die 3CX Telefonanlage, diese auf die Datenbank (Zuhause PC) zugreifen soll liegt in der Cloud, gehostet durch 3CX.
Auf 3CX.com kann ich lediglich meine Daten für meine eigene Datenbank hinterlegen.

siehe hier:

Bildschirmfoto 2023-05-19 um 01.59.14.png


und hier:

Bildschirmfoto 2023-05-19 um 01.56.29.png



EDIT: Hier siehst du die my.cnf File:

Bildschirmfoto 2023-05-19 um 02.06.22.png



und die Benutzerkonfiguration in PHPMyAdmin:

Bildschirmfoto 2023-05-19 um 02.04.47.png

Gruß
 
Zuletzt bearbeitet:
Einen Schritt konnte ich bisher weiterkommen.

Nun habe ich ngrok verwendet, um meine Datenbank mit dem Port 3306 ins Internet zu "streamen" und erhalte nun in 3CX folgende Fehlermeldung:

Bildschirmfoto 2023-05-19 um 03.15.20.png

Dabei ist mir aufgefallen, dass nun wirklich eine Verbindung zur Datenbank besteht, denn wenn ich ein falsches Passwort eingebe wird wieder die Meldung "Access Denied Passwort Using Yes" angezeigt. Es funktioniert mit dem Benutzer "root" und "Test".

Jetzt wäre nur noch interessant zu wissen, wobei der nächste Fehler liegt. Ich habe alle erforderlichen Tabellen und Spalten in der Datenbank angelegt. Wie es aussieht liegt der Fehler bei der Spalte "contactid" init (11) unsigned AUTO_INCREMENT (PRIMÄRSCHLÜSSEL)

Gruß
 
Werbung:
Ok geschafft.

Habe einzelne Variablen anpassen müssen. Nun steht fest, dass es weder am Mac PC, 3CX oder einem blockierten Port liegt. NGROK hat es geschafft. Über den Service von Serveo war es nicht möglich. Über meine Domain ist es ebenfalls nicht möglich, diese über Cloudflare meinen Server ins Netz stellt und an meine Domain weiterleitet. Über Cloudflare ist es mir im allgemeinen bisher nicht gelungen, in dem ich meine Domain in 3CX hinterlege.

PS: Ach ja, mein VPN läuft und es hat trotzdem funktioniert. Ausgehende oder eingehende Anrufe werden nun als Kontakt in meiner Datenbank hinterlegt, diese noch nicht im Adressbuch -> meine MySQL Datenbank steht. Mein Ziel ist es die Anrufaufzeichnung aus 3CX direkt in der Datenbank zu hinterlegen. Das habe ich mir bereits aufgebaut, allerdings ist dafür ein PHP-Script zuständig, dieser nun nicht mehr mit 3CX funktionieren wird, daher muss ich komplett über die 3CX Variablen gehen.

Mit der NGROK Domain hat es nun funktioniert und dessen Port. Dabei habe ich in 3CX nicht den Port 3306 angegeben siehe Screenshot:

Bildschirmfoto 2023-05-19 um 03.41.58.png

Gruß
 
Zurück
Oben