Conectando R con MySQL

He comenzado hace muy poco a usar R por lo que el camino que me queda por recorrer es bastante largo, así que iré escribiendo por aquí algunas pequeñas píldoras que vaya viendo interesantes.

El primer tema con el que me he tenido que pegar mas de la cuenta, es la conectividad entre R y MySQL. Hay varios tutoriales o pequeñas guías, pero ninguna me ha servido al 100% así os voy a detallar los pasos que me han funcionado para conseguir la conectividad.

Lo primero de todo es instalar, si no los tenemos ya instalados, R, RTools y MySQL. Además es bastante recomendable, en general para trabajar con R, instalar R Studio.

Es importante destacar que, por algún motivo que no he comprendido, a mi, que ya tenía WAMP Server instalado, no me ha funcionado sin instalar además, MySQL por separado.

Con todo instalado, el objetivo sería conseguir añadir el paquete RMySQL a nuestra instalación de R. La manera natural de hacer esto, como con cualquier otro paquete dentro de R Studio, sería

    1. Escribimos en la consola
    2. Como vemos, nos salta el siguiente error
      error_rmysql
    3. Esto es debido a que el paquete RMySQL no tiene los binarios creados para ser instalados. Por tanto, elegimos instalarlos directamente del código. Para ello deberíamos escribir
    4. Y como veis, nuevamente nos da errorerror_rmysql2

Visto que la instalación normal no ha funcionado, vamos a seguir los pasos de configuración del sistema para poder instalar RMySQL.

  1. Configuración de las variables de entorno
    Accedemos a las variables del sistema (Equipo/Mi PC, botón derecho, Propiedades, Opciones avanzadas, Variables de entorno…  Editamos la variable Path y nos aseguramos de que dentro tenemos estas lineas
  2. Crear archivo con el path de MySQL para R
    Nos vamos a la carpeta C:\Program Files\R\R-3.1.2\etc y dentro creamos un fichero con nombre Renviron.site con el siguiente contenido

    Atención a las “/”, son correctas, en este caso no son las típicas “\” de Windows.
  3. Copiar librerias de MySQL
    No he sido capaz de, mediante el proceso normal, hacer que R Studio copie las librerías correspondientes a MySQL en las rutas que R necesita para funcionar. Por ello las he copiado a mano en las siguientes rutas

    1. libmysql.dll de C:\Program Files\MySQL\MySQL 5.6 \bin a C:\Program Files\MySQL\MySQL 5.6 \lib
    2. libmysql.dll y libmysql.lib de C:\Program Files\MySQL\MySQL 5.6 \bin C:\Program Files\MySQL\MySQL 5.6 \lib\opt
  4. Instalar librerias DBI
    Accedemos a las librerías DBI y descargamos DBI_0.3.1.tar.gz. Después lo copiamos en C:\Program Files\R\R-3.1.2\bin\x64 , abrimos un Símbolo de sistema con permisos de administrador y ejecutamos

    02_rmysql
  5. Instalar RMySQL
    Con DBI instalado, entramos en la libreria de RMySQL y descargamos RMySQL_0.8-0.tar.gz. Las pruebas las he hecho con esta versión aunque ahora mismo están por la 0.9.3. Estas son las líneas finales de salida del comando en el Símbolo de sistema03_rmysql
  6. Listo!

Si queréis podéis probar la instalación entrando en R Studio y siguiendo estos pasos

  1. Cargamos la libreria de MySQL para R con

    library(“RMySQL”)

  2. Y ejecutamos estas sentencias, una a una

Y veremos los resultados de nuestra query en la consola! Algo como esto…

04_rmysql

 

Espero que os sea útil 😉

Sergio Martín
Más de seis años de experiencia gestionando equipos y proyectos de Business Intelligence para diferentes sectores, apasionado de todos los procesos técnicos relacionados con la gestión de la información, el tratamiento de datos y la automatización de procesos

** Microstrategy 9.4 | Pentaho 5 (ETL) | Oracle 11g **

2 comments

    1. Gracias José Luis. Totalmente cierto, en Linux funciona perfecto. Tendría que haber especificado que la conectividad de R a MySQL era sobre Windows. El motivo por el cual no funciona es porque los archivos binarios no están creados para este SO y por ello necesitamos descargar las sources para instalarlo desde ahí 😉

      Saludos!!

      Un saludo!!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *