Básicamente, quiero poder usar el lenguaje de programación R para interactuar
con una base de datos MySQL disponible a través de phpMyAdmin. Ahora mismo estoy intentando
determinar si los errores que obtengo al intentar conectarme a esta base de datos son
porque estoy pasando argumentos equivocados o si hay algo
fundamentalmente mal con la forma en que estoy haciendo todo.
Me dieron la siguiente información para trabajar:
Algunas cosas dignas de mención:
En otras palabras, no parece ser un problema con la base de datos remota
en sí, mi instalación de MariaDB,
o con R y sus paquetes. [Nota: la base de datos a la que tengo acceso actualmente
representa solo una pequeña muestra de la base de datos completa, por lo que descargar todo
localmente no es una opción viable].
En este momento estoy tratando de averiguar si las variables que estoy usando en la R
función para establecer una conexión son incorrectas (y, si este es el caso, qué
debería usar en su lugar) o si lo estoy haciendo todo mal, tal vez
porque hay algo fundamentalmente diferente en phpMyAdmin que soy
desaparecido. Si este es el caso, me gustaría saber lo que iba a necesitar
para establecer una conexión (por ejemplo, ¿necesitaría la dirección IP del
¿El propio servidor MySQL para poder conectarse de forma remota?).
Para darte una idea de los valores que he intentado usar, aquí tienes un ejemplo de
Código R que he probado:
con <- dbConnect(RMariaDB::MariaDB(),
host = 'tempdb.companyname.com/phpMyAdmin',
dbname = 'companyname',
user = 'dbs_guest',
password = 'guestpassword')
temptable <- tbl(con, "temptable")
En particular, no estoy seguro de si el valor de " host " es correcto, especialmente
ya que cuando estoy conectado estoy conectado al servidor se da como "Servidor: Localhost a través del socket UNIX".
Además, el " usuario " debería aparecer como " dbs_guest @ localhost " (como es cuando
log in phpMyAdmin) o estaría implícito en el valor de "host". Finalmente,
También podría pasar un argumento de " puerto ", pero no tengo idea de qué sería
de todas formas. Ah, y no estoy seguro de si algo de esto dependería de si estoy o no actualmente
iniciado sesión en phpMyAdmin (usando Chrome, por ejemplo) mientras ejecuta estos comandos.
Para reiterar, solo estoy tratando de averiguar si hay algo sobre phpMyAdmin
eso hace que lo que estoy tratando de hacer sea imposible (y lo que debería hacer en su lugar)
o si tengo los valores de las variables mal.
Gracias por su paciencia.
Sinceramente,
Steve
@SplashDance Estoy confundido, sabes que phpMyAdmin es solo una interfaz web y no un servidor de base de datos, ¿verdad?
No entiendo por qué R tendría algo que ver con phpMyAdmin.
cc @ibennetch
cc @mauriciofauth
¿Entendí mal tu problema?
Correcto. Obtengo que phpMyAdmin es una interfaz para interactuar con un servidor de base de datos y no con el servidor en sí. O, al menos, tengo un entendimiento vago de que para interactuar con el servidor tengo que pasar por phpMyAdmin.
Pero en este momento solo tengo la dirección phpMyAdmin para trabajar y estaba pensando (y entiendo que esto podría estar muy lejos) que tendría que, en efecto, conectarme a dicha base de datos a través de phpMyAdmin de alguna manera.
Tengo que pasar por phpMyAdmin.
Creo que no, y por lo que sé, no ofrecemos ninguna API o forma de interactuar con bases de datos.
La única forma es la interacción humana con la interfaz.
¿Intentó conectarse con R a mysql como sugiere http://stla.github.io/stlapblog/posts/RMySQL.html ?
Pero ahora solo tengo la dirección phpMyAdmin para trabajar
Quizás el servidor de la base de datos esté en la misma máquina que la base de datos, ¿por eso solo tiene el nombre de host de la base de datos "phpmyadmin" /? servidor
¿ Eso responde a tu pregunta
La mayoría de las instalaciones de MySQL evitan las conexiones de red entrantes de forma predeterminada. Para conectarse directamente desde una dirección externa, como una aplicación que se ejecuta en su computadora local, tendría que exponer el puerto MySQL a Internet. Por lo general, es una mala práctica de seguridad. Muchas veces, phpMyAdmin se ejecuta en el mismo servidor que la instancia de MySQL, por lo que se conecta a la dirección del host local (127.0.0.1) oa través de un archivo de socket UNIX (que es lo que está haciendo su phpMyAdmin).
Dentro del propio phpMyAdmin, deliberadamente no incluimos ningún método para reflejar o redirigir las conexiones entrantes directamente a MySQL porque eso sería más o menos exponer MySQL de la misma forma que abrir el puerto MySQL directamente a Internet, nuevamente una muy mala idea. Es por eso que el uso de la URL phpMyAdmin en sí como su cadena de conexión no funciona. Tiene razón en que necesitaría la dirección IP del servidor (o el nombre de host) aquí.
Generalmente, tiene tres opciones para conectarse a una instancia remota de MySQL / MariaDB:
Desafortunadamente, phpMyAdmin no puede ayudarlo con ninguno de esos.
En primer lugar, permítanme decirles que realmente aprecio todas sus respuestas (especialmente considerando lo amateur de mi pregunta inicial) y aprecio especialmente la respuesta de Isaac - fue particularmente considerada y muy útil.
En todo caso, es un alivio finalmente obtener una respuesta definitiva para no tener que perder más tiempo probando diferentes combinaciones de argumentos de función, etc.
Nuevamente, gracias por tu tiempo.
Sinceramente,
Steve
Comentario más útil
La mayoría de las instalaciones de MySQL evitan las conexiones de red entrantes de forma predeterminada. Para conectarse directamente desde una dirección externa, como una aplicación que se ejecuta en su computadora local, tendría que exponer el puerto MySQL a Internet. Por lo general, es una mala práctica de seguridad. Muchas veces, phpMyAdmin se ejecuta en el mismo servidor que la instancia de MySQL, por lo que se conecta a la dirección del host local (127.0.0.1) oa través de un archivo de socket UNIX (que es lo que está haciendo su phpMyAdmin).
Dentro del propio phpMyAdmin, deliberadamente no incluimos ningún método para reflejar o redirigir las conexiones entrantes directamente a MySQL porque eso sería más o menos exponer MySQL de la misma forma que abrir el puerto MySQL directamente a Internet, nuevamente una muy mala idea. Es por eso que el uso de la URL phpMyAdmin en sí como su cadena de conexión no funciona. Tiene razón en que necesitaría la dirección IP del servidor (o el nombre de host) aquí.
Generalmente, tiene tres opciones para conectarse a una instancia remota de MySQL / MariaDB:
Desafortunadamente, phpMyAdmin no puede ayudarlo con ninguno de esos.