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.
- R. http://cran.r-project.org [Windows – 3.1.2]
- R Studio. http://www.rstudio.com [Windows – 0.98.1091]
- RTools. http://cran.r-project.org/bin/windows/Rtools [Windows – 3.1.x]
- MySQL 5.6. Recomiendo no descargar la versión instalable, creo que lo mejor es bajarse el fichero zip [Windows] y descomprimir su contenido en C:\Program Files\MySQL\MySQL 5.6\
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
- Escribimos en la consola
1install.packages("RMySQL") - Como vemos, nos salta el siguiente error
- 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
1install.packages("RMySQL", type="source") - Y como veis, nuevamente nos da error
Visto que la instalación normal no ha funcionado, vamos a seguir los pasos de configuración del sistema para poder instalar RMySQL.
- 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
1C:\Program Files\MySQL\MySQL 5.6\bin;C:\Program Files\R\R-3.1.2\bin;c:\Rtools\bin;c:\Rtools\gcc-4.6.3\bin; - 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
1MYSQL_HOME=C:/Program Files/MySQL/MySQL 5.6
Atención a las “/”, son correctas, en este caso no son las típicas “\” de Windows. - 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- libmysql.dll de C:\Program Files\MySQL\MySQL 5.6 \bin a C:\Program Files\MySQL\MySQL 5.6 \lib
- libmysql.dll y libmysql.lib de C:\Program Files\MySQL\MySQL 5.6 \bin a C:\Program Files\MySQL\MySQL 5.6 \lib\opt
- 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
12cd "C:\Program Files\R\R-3.1.2\bin\x64"R CMD INSTALL DBI_0.3.1.tar.gz
- 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 sistema - Listo!
Si queréis podéis probar la instalación entrando en R Studio y siguiendo estos pasos
- Cargamos la libreria de MySQL para R con
library(“RMySQL”)
- Y ejecutamos estas sentencias, una a una
1234driver=dbDriver("MySQL");conexion = dbConnect(driver,host="localhost",dbname="database",user="user",pass="pass");query = dbGetQuery(conexion,statement="SELECT * FROM tabla");query
Y veremos los resultados de nuestra query en la consola! Algo como esto…
Espero que os sea útil 😉
Pues en linux con install.packages(“RMySQL”) no hay ningún problema.
va de lujo.. 😉
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!!
muchisimas gracias
Muchas gracias. Probaré!