En gros, je veux pouvoir utiliser le langage de programmation R pour interagir
avec une base de données MySQL disponible via phpMyAdmin. En ce moment j'essaye de
déterminer si les erreurs que je reçois en essayant de me connecter à cette base de données sont
parce que je passe les mauvais arguments ou s'il y a juste quelque chose
fondamentalement faux avec la façon dont je fais tout.
J'ai reçu les informations suivantes pour travailler avec:
Quelques points à noter:
En d'autres termes, cela ne semble pas être un problème avec la base de données distante
lui-même, mon installation de MariaDB,
ou avec R et ses packages. [Remarque: la base de données à laquelle j'ai actuellement accès
ne représente qu'un petit échantillon de la base de données complète, donc le téléchargement de tout
localement n’est pas une option viable].
En ce moment, j'essaie de déterminer si les variables que j'utilise dans le R
fonction pour établir une connexion sont faux (et, si tel est le cas,
devrais- je utiliser à la place) ou si je fais tout faux - peut-être
parce qu'il y a juste quelque chose de fondamentalement différent à propos de phpMyAdmin que je suis
manquant. Si tel est le cas, je voudrais savoir ce que je aurais besoin
pour établir une connexion (par exemple, aurais-je besoin de l'adresse IP du
Serveur MySQL lui-même pour pouvoir se connecter à distance?).
Pour vous donner une idée des valeurs que j'ai essayées d'utiliser, voici un exemple de
Code R que j'ai essayé:
con <- dbConnect(RMariaDB::MariaDB(),
host = 'tempdb.companyname.com/phpMyAdmin',
dbname = 'companyname',
user = 'dbs_guest',
password = 'guestpassword')
temptable <- tbl(con, "temptable")
En particulier, je ne suis pas sûr que la valeur de " host " soit correcte, en particulier
puisque quand je suis connecté, le serveur est donné comme "Serveur: Localhost via socket UNIX".
De plus, " user " devrait-il être répertorié comme " dbs_guest @ localhost " (comme c'est le cas lorsque
connecté à phpMyAdmin) ou cela serait-il impliqué par la valeur de "host". Enfin,
Je pourrais aussi passer un argument " port " mais je n'ai aucune idée de ce que ce serait
en tous cas. Oh, et je ne suis pas sûr que tout cela dépende du fait que je suis ou non actuellement
connecté à phpMyAdmin (à l'aide de Chrome, par exemple) lors de l'exécution de ces commandes.
Pour réitérer, j'essaie juste de savoir s'il y a quelque chose à propos de phpMyAdmin
cela rend ce que j'essaye de faire impossible (et ce que j'aurais besoin de faire à la place)
ou si je viens de me tromper sur les valeurs des variables.
Merci pour votre patience.
Cordialement,
Steve
@SplashDance Je suis confus, vous savez que phpMyAdmin n'est qu'une interface Web et non un serveur de base de données, non?
Je ne comprends pas pourquoi R aurait quelque chose à voir avec phpMyAdmin?
cc @ibennetch
cc @mauriciofauth
Ai-je mal compris votre problème?
Droite. J'obtiens que
Mais en ce moment je n'ai que l'adresse de phpMyAdmin pour travailler avec et je pensais (et je reçois que cela pourrait être loin) que je dois, en effet, de connexion à ladite base de données via phpMyAdmin en quelque sorte.
Je dois passer par phpMyAdmin.
Je ne pense pas, et d'après ce que je sais, nous n'offrons aucune API ou moyen d'interagir avec les bases de données.
Le seul moyen est l'interaction humaine avec l'interface
Avez-vous essayé de vous connecter avec R à mysql comme le suggère http://stla.github.io/stlapblog/posts/RMySQL.html ?
Mais pour le moment, je n'ai que l'adresse phpMyAdmin avec laquelle travailler
Peut-être que le serveur de base de données est sur la même machine que la base de données, ce serait pourquoi vous n'avez que le nom d'hôte de la base de données "phpmyadmin"? serveur
Est-ce que cela répond à votre question @SplashDance ?
La plupart des installations MySQL empêchent les connexions réseau entrantes par défaut. Pour vous connecter directement à partir d'une adresse externe, telle qu'une application exécutée sur votre ordinateur local, vous devez exposer le port MySQL à Internet. C'est généralement une mauvaise pratique de sécurité. Plusieurs fois, phpMyAdmin s'exécute sur le même serveur que l'instance MySQL, donc il se connecte soit à l'adresse de l'hôte local (127.0.0.1) soit via un fichier socket UNIX (ce que fait votre phpMyAdmin).
Dans phpMyAdmin lui-même, nous n'incluons délibérément aucune méthode pour refléter ou rediriger les connexions entrantes directement vers MySQL, car cela exposerait à peu près MySQL de la même manière que l'ouverture du port MySQL directement sur Internet, encore une fois une très mauvaise idée. C'est pourquoi l'utilisation de l'URL phpMyAdmin elle-même comme chaîne de connexion ne fonctionne pas. Vous avez raison de dire que vous auriez besoin de l'adresse IP du serveur (ou du nom d'hôte) ici à la place.
En règle générale, vous avez trois options pour vous connecter à une instance MySQL / MariaDB distante:
Malheureusement, phpMyAdmin ne peut vous aider avec aucun de ces éléments.
Tout d'abord, permettez-moi de dire que j'apprécie vraiment toutes vos réponses (surtout compte tenu de l'amateurisme de ma question initiale) et j'apprécie particulièrement la réponse d'Isaac - elle a été particulièrement réfléchie et très utile.
Si quoi que ce soit, c'est un soulagement d'obtenir enfin une réponse définitive pour ne plus perdre de temps à essayer différentes combinaisons d'arguments de fonction, etc.
Encore une fois, merci pour votre temps.
Cordialement,
Steve
Commentaire le plus utile
La plupart des installations MySQL empêchent les connexions réseau entrantes par défaut. Pour vous connecter directement à partir d'une adresse externe, telle qu'une application exécutée sur votre ordinateur local, vous devez exposer le port MySQL à Internet. C'est généralement une mauvaise pratique de sécurité. Plusieurs fois, phpMyAdmin s'exécute sur le même serveur que l'instance MySQL, donc il se connecte soit à l'adresse de l'hôte local (127.0.0.1) soit via un fichier socket UNIX (ce que fait votre phpMyAdmin).
Dans phpMyAdmin lui-même, nous n'incluons délibérément aucune méthode pour refléter ou rediriger les connexions entrantes directement vers MySQL, car cela exposerait à peu près MySQL de la même manière que l'ouverture du port MySQL directement sur Internet, encore une fois une très mauvaise idée. C'est pourquoi l'utilisation de l'URL phpMyAdmin elle-même comme chaîne de connexion ne fonctionne pas. Vous avez raison de dire que vous auriez besoin de l'adresse IP du serveur (ou du nom d'hôte) ici à la place.
En règle générale, vous avez trois options pour vous connecter à une instance MySQL / MariaDB distante:
Malheureusement, phpMyAdmin ne peut vous aider avec aucun de ces éléments.