Grundsätzlich möchte ich in der Lage sein, die Programmiersprache R für die Interaktion zu verwenden
mit einer MySQL-Datenbank, die über phpMyAdmin verfügbar ist. Im Moment versuche ich es
Stellen Sie fest, ob die Fehler auftreten, die beim Versuch, eine Verbindung zu dieser Datenbank herzustellen, auftreten
weil ich die falschen Argumente übergebe oder ob es nur etwas gibt
Grundsätzlich falsch mit der Art und Weise, wie ich alles mache.
Ich erhielt die folgenden Informationen, mit denen ich arbeiten konnte:
Einige bemerkenswerte Dinge:
Mit anderen Worten, es scheint kein Problem mit der entfernten Datenbank zu sein
selbst, meine Installation von MariaDB,
oder mit R und seinen Paketen. [Hinweis: Die Datenbank, auf die ich derzeit Zugriff habe
stellt nur eine kleine Auswahl der vollständigen Datenbank dar, sodass alles heruntergeladen werden kann
lokal ist keine praktikable Option].
Im Moment versuche ich herauszufinden, ob die Variablen, die ich im R verwende
Funktionen zum Herstellen einer Verbindung sind falsch (und wenn dies der Fall ist, was
sollte ich stattdessen verwenden) oder wenn ich einfach alles falsch mache - vielleicht
weil phpMyAdmin etwas grundlegend anderes ist als ich
fehlt. Wenn dies tatsächlich der Fall ist, würde ich gerne wissen, was ich brauchen würde
Um eine Verbindung herzustellen (zum Beispiel würde ich die IP-Adresse des benötigen
MySQL Server selbst, um eine Remote-Verbindung herstellen zu können?).
Um Ihnen einen Eindruck von den Werten zu geben, die ich versucht habe, finden Sie hier ein Beispiel für die
R- Code, den ich ausprobiert habe:
con <- dbConnect(RMariaDB::MariaDB(),
host = 'tempdb.companyname.com/phpMyAdmin',
dbname = 'companyname',
user = 'dbs_guest',
password = 'guestpassword')
temptable <- tbl(con, "temptable")
Insbesondere bin ich mir nicht sicher, ob der Wert von " host " korrekt ist, insbesondere
seitdem ich angemeldet bin, wird der Server als "Server: Localhost via UNIX-Socket" angegeben.
Außerdem müsste " Benutzer " als " dbs_guest @ localhost " aufgeführt werden (wie es ist, wenn
angemeldet in phpMyAdmin) oder würde dies durch den Wert von "host" impliziert. Zuletzt,
Ich könnte auch ein " Port " -Argument übergeben, aber ich habe keine Ahnung, was das sein würde
wie auch immer. Oh, und ich bin mir nicht sicher, ob dies davon abhängen würde, ob ich gerade bin oder nicht
beim Ausführen dieser Befehle bei phpMyAdmin angemeldet (z. B. mit Chrome).
Um es noch einmal zu wiederholen, ich versuche nur herauszufinden, ob phpMyAdmin etwas enthält
das macht unmöglich, was ich versuche zu tun (und was ich stattdessen tun müsste)
oder wenn ich nur die variablen Werte falsch verstanden habe.
Danke für Ihre Geduld.
Mit freundlichen Grüßen,
Steve
@SplashDance Ich bin verwirrt, Sie wissen, dass phpMyAdmin nur eine Webschnittstelle und kein Datenbankserver ist, oder?
Ich verstehe nicht, warum R etwas mit phpMyAdmin zu tun haben würde?
cc @ibennetch
cc @mauriciofauth
Habe ich Ihr Problem falsch verstanden?
Recht. Ich bekomme, dass phpMyAdmin eine Schnittstelle für die Interaktion mit einem Datenbankserver und nicht dem Server selbst. Oder zumindest habe ich ein vages Verständnis dafür, dass ich phpMyAdmin durchlaufen muss, um mit dem Server zu interagieren.
Aber jetzt habe ich nur die phpMyAdmin - Adresse an die Arbeit mit und ich dachte (und ich bekommen , dass dies könnte weg sein Weg) , dass ich müsste in der Tat connect durch phpMyAdmin auf die Datenbank irgendwie.
Ich muss durch phpMyAdmin gehen.
Ich denke nicht, und soweit ich weiß, bieten wir keine API oder Möglichkeit zur Interaktion mit Datenbanken.
Der einzige Weg ist die menschliche Interaktion mit der Schnittstelle
Haben Sie versucht, mit R eine Verbindung zu MySQL herzustellen, wie es http://stla.github.io/stlapblog/posts/RMySQL.html vorschlägt?
Aber im Moment habe ich nur die phpMyAdmin-Adresse, mit der ich arbeiten kann
Möglicherweise befindet sich der Datenbankserver auf demselben Computer wie die Datenbank. Deshalb haben Sie nur den Hostnamen der Datenbank "phpmyadmin" /? Server
Beantwortet das Ihre Frage @SplashDance ?
Die meisten MySQL-Installationen verhindern standardmäßig eingehende Netzwerkverbindungen. Um eine direkte Verbindung von einer externen Adresse herzustellen, z. B. einer Anwendung, die auf Ihrem lokalen Computer ausgeführt wird, müssen Sie den MySQL-Port für das Internet verfügbar machen. Das ist im Allgemeinen eine schlechte Sicherheitspraxis. Oft wird phpMyAdmin auf demselben Server wie die MySQL-Instanz ausgeführt, sodass eine Verbindung entweder zur lokalen Hostadresse (127.0.0.1) oder über eine UNIX-Socket-Datei (wie es Ihr phpMyAdmin tut) hergestellt wird.
In phpMyAdmin selbst enthalten wir bewusst keine Methode zum Reflektieren oder Umleiten eingehender Verbindungen direkt zu MySQL, da dies MySQL so ziemlich wie das Öffnen des MySQL-Ports direkt zum Internet aussetzen würde, was wiederum eine sehr schlechte Idee ist. Aus diesem Grund funktioniert die Verwendung der phpMyAdmin-URL selbst als Verbindungszeichenfolge nicht. Sie haben Recht, dass Sie hier stattdessen die Server-IP-Adresse (oder den Hostnamen) benötigen.
Im Allgemeinen haben Sie drei Möglichkeiten, um eine Verbindung zu einer Remote-MySQL / MariaDB-Instanz herzustellen:
Leider kann Ihnen phpMyAdmin bei keinem dieser Probleme helfen.
Lassen Sie mich zunächst nur sagen, dass ich all Ihre Antworten sehr schätze (insbesondere angesichts der Amateurhaftigkeit meiner ersten Frage) und Isaacs Antwort besonders schätze - sie war besonders nachdenklich und sehr hilfreich.
Wenn überhaupt, ist es eine Erleichterung, endlich eine endgültige Antwort zu erhalten, damit ich keine Zeit mehr damit verschwenden muss, verschiedene Kombinationen von Funktionsargumenten usw. auszuprobieren.
Nochmals vielen Dank für Ihre Zeit.
Mit freundlichen Grüßen,
Steve
Hilfreichster Kommentar
Die meisten MySQL-Installationen verhindern standardmäßig eingehende Netzwerkverbindungen. Um eine direkte Verbindung von einer externen Adresse herzustellen, z. B. einer Anwendung, die auf Ihrem lokalen Computer ausgeführt wird, müssen Sie den MySQL-Port für das Internet verfügbar machen. Das ist im Allgemeinen eine schlechte Sicherheitspraxis. Oft wird phpMyAdmin auf demselben Server wie die MySQL-Instanz ausgeführt, sodass eine Verbindung entweder zur lokalen Hostadresse (127.0.0.1) oder über eine UNIX-Socket-Datei (wie es Ihr phpMyAdmin tut) hergestellt wird.
In phpMyAdmin selbst enthalten wir bewusst keine Methode zum Reflektieren oder Umleiten eingehender Verbindungen direkt zu MySQL, da dies MySQL so ziemlich wie das Öffnen des MySQL-Ports direkt zum Internet aussetzen würde, was wiederum eine sehr schlechte Idee ist. Aus diesem Grund funktioniert die Verwendung der phpMyAdmin-URL selbst als Verbindungszeichenfolge nicht. Sie haben Recht, dass Sie hier stattdessen die Server-IP-Adresse (oder den Hostnamen) benötigen.
Im Allgemeinen haben Sie drei Möglichkeiten, um eine Verbindung zu einer Remote-MySQL / MariaDB-Instanz herzustellen:
Leider kann Ihnen phpMyAdmin bei keinem dieser Probleme helfen.