Conectar Ruby con Mysql en Ubuntu 9.10

marzo 17 201010 comentarios

Guardado en : Programación, Software Libre

Para poder conectar Ruby con Mysql necesitamos de tres cosas:

Ruby, Mysql y el modulo Ruby Mysql que es el que nos ayudara a crear la conexión.

El modulo lo podemos descargar del siguiente enlace http://rubyforge.org/frs/?group_id=4550.

Para este ejemplo se utilizaron las siguientes versiones.

Mysql: 5.1.37-1ubuntu5.1
Ruby: 1.8.7 (2009-06-12 patchlevel 174) [i486-linux]
Modulo: mysql-ruby-2.8.2.tar.gz
 

Ya descargado el modulo lo descomprimimos con el siguiente comando:

tar zxf mysql-ruby-2.8.2.tar.gz

Accedemos a la carpeta mysql-ruby-2.8.2 y ejecutamos el siguiente comando para configurar la distribución:

ruby extconf.rb

Una vez configurado instalamos el modulo:

make
sudo make install

Con el modulo Ruby MySql instalado, ya podremos ser capaces de conectarnos a nuestro servidor MySql. Para este ejemplo nuestro servidor se está ejecutando en la maquina local y tenemos una base de datos llamada “escuela”  y una tabla llamada “alumno” con los campos matricula, nombre y carrera.

Como nos conectaremos con un nombre de usuario y contraseña necesitamos configurar esta cuenta para poder trabajar con mysql y ruby, para ello haremos lo siguiente:

Accedemos a mysql con el comando

mysql -u root -p

Damos los permisos para poder trabajar con la tabla.

GRANT ALL ON escuela.* TO 'root'@'localhost' IDENTIFIED BY '1234';

donde ’1234′ es el password de nuestro servidor mysql.

En caso de no tener creada nuestra base de datos, la creamos de la siguiente manera.

CREATE DATABASE escuela;
 

Creamos la tabla alumno.

CREATE TABLE alumno(
matricula varchar(10),
nombre varchar(40),
carrera varchar(40));

Bueno, hasta aquí ya tenemos configurado nuestro modulo y nuestro servidor, ahora vamos a lo que es el programa. El código esta divido en dos archivos, para este caso los llame mysqlruby.rb y clase.rb, donde mysqlruby.rb tendrá el código del menú mostrado en pantalla y clase.rb tendrá los métodos de agregar, consultar, eliminar y la conexión de la base de datos.

El código lo pueden descargar de aquí.

mysqlruby

A continuación algunas imagenes del funcionamiento del programa.

Menú.

Agregar.

Consultar.

Eliminar.

Salir.

Listo!!

El código puede ser modificado según sea la necesidad, por ahora espero sea de gran ayuda, cualquier duda no duden en comentar.

Quizá te interese :

Acerca del autor:

Ingeniero en Sistemas Computacionales.. Puedes contactarme sobre mis artículos en jsosa@smartdsign.net

10 Respuestas a “Conectar Ruby con Mysql en Ubuntu 9.10”

  1. Daniel dice:

    Buen tutorial!

  2. Oscar dice:

    me lanza un error al intentar configurar el modulo, cuando escribo ruby extconf.rb aparece esto:
    ruby extconf.rb
    checking for mysql_query() in -lmysqlclient… no
    checking for main() in -lm… yes
    checking for mysql_query() in -lmysqlclient… no
    checking for main() in -lz… no
    checking for mysql_query() in -lmysqlclient… no
    checking for main() in -lsocket… no
    checking for mysql_query() in -lmysqlclient… no
    checking for main() in -lnsl… yes
    checking for mysql_query() in -lmysqlclient… no
    checking for main() in -lmygcc… no
    checking for mysql_query() in -lmysqlclient… no
    *** extconf.rb failed ***
    Could not create Makefile due to some reason, probably lack of
    necessary libraries and/or headers. Check the mkmf.log file for more
    details. You may need configuration options.

    Provided configuration options:
    –with-opt-dir
    –without-opt-dir
    –with-opt-include
    –without-opt-include=${opt-dir}/include
    –with-opt-lib
    –without-opt-lib=${opt-dir}/lib
    –with-make-prog
    –without-make-prog
    –srcdir=.
    –curdir
    –ruby=/usr/bin/ruby1.8
    –with-mysql-config
    –without-mysql-config
    –with-mysql-dir
    –without-mysql-dir
    –with-mysql-include
    –without-mysql-include=${mysql-dir}/include
    –with-mysql-lib
    –without-mysql-lib=${mysql-dir}/lib
    –with-mysqlclientlib
    –without-mysqlclientlib
    –with-mlib
    –without-mlib
    –with-mysqlclientlib
    –without-mysqlclientlib
    –with-zlib
    –without-zlib
    –with-mysqlclientlib
    –without-mysqlclientlib
    –with-socketlib
    –without-socketlib
    –with-mysqlclientlib
    –without-mysqlclientlib
    –with-nsllib
    –without-nsllib
    –with-mysqlclientlib
    –without-mysqlclientlib
    –with-mygcclib
    –without-mygcclib
    –with-mysqlclientlib
    –without-mysqlclientlib
    cual podria ser el problema?

  3. Daniel dice:

    Te hace falta instalar las librerías de desarrollo de Mysql (los headers)
    En Ubuntu por ejemplo, los puedes resolver con:

    sudo apt-get install ruby-full build-essential

    Y después

    sudo aptitude install ruby build-essential libopenssl-ruby ruby1.8-dev

    Despúes de eso puedes continuar con el procedimiento normal de instalación.
    Espero haberte ayudado, Saludos!!

  4. Oscar dice:

    Gracias!…de hecho ya lo habia solucionado…hice lo mismo que tu propusiste…pero muchas gracias de todos modos…pero me sirvio de mucho tu mini-tutorial jeje. Gracias, saludos!

  5. Daniel dice:

    De nada, con mucho gusto.
    Esperemos, puedas seguir colaborando con preguntas en nuestra comunidad.

  6. Miguel dice:

    Estoy en el mismo caso que Oscar y he realizado lo indicado por Daniel pero me continua el error. Uso Ubuntu

    Por que puede ser?

  7. Daniel dice:

    Sugerencias para Ubuntu

    • Revisa que tus gems estén en el PATH
    • Instala libmysql-dev (el paquete desde synaptic que tenga los headers y librerías de desarrollo para mysql)
    • Cuando falla la instalación de un rubygem normalmente escribe todo a un log, si puedes pegarlo o visualizarlo, te dará más pistas sobre lo que puede estar fallando

    Cualquier duda, aqui estamos no te guardes ninguna pregunta!

  8. Miguel dice:

    checking for mysql_query() in -lmysqlclient… no
    checking for main() in -lm… yes
    checking for mysql_query() in -lmysqlclient… no
    checking for main() in -lz… yes
    checking for mysql_query() in -lmysqlclient… no
    checking for main() in -lsocket… no
    checking for mysql_query() in -lmysqlclient… no
    checking for main() in -lnsl… yes
    checking for mysql_query() in -lmysqlclient… no
    checking for main() in -lmygcc… no
    checking for mysql_query() in -lmysqlclient… no
    *** extconf.rb failed ***
    Could not create Makefile due to some reason, probably lack of
    necessary libraries and/or headers. Check the mkmf.log file for more
    details. You may need configuration options.

    Provided configuration options:
    –with-opt-dir
    –without-opt-dir
    –with-opt-include
    –without-opt-include=${opt-dir}/include
    –with-opt-lib
    –without-opt-lib=${opt-dir}/lib
    –with-make-prog
    –without-make-prog
    –srcdir=.
    –curdir
    –ruby=/usr/bin/ruby1.8
    –with-mysql-config
    –without-mysql-config
    –with-mysql-dir
    –without-mysql-dir
    –with-mysql-include
    –without-mysql-include=${mysql-dir}/include
    –with-mysql-lib
    –without-mysql-lib=${mysql-dir}/lib
    –with-mysqlclientlib
    –without-mysqlclientlib
    –with-mlib
    –without-mlib
    –with-mysqlclientlib
    –without-mysqlclientlib
    –with-zlib
    –without-zlib
    –with-mysqlclientlib
    –without-mysqlclientlib
    –with-socketlib
    –without-socketlib
    –with-mysqlclientlib
    –without-mysqlclientlib
    –with-nsllib
    –without-nsllib
    –with-mysqlclientlib
    –without-mysqlclientlib
    –with-mygcclib
    –without-mygcclib
    –with-mysqlclientlib
    –without-mysqlclientlib

    Esto es lo que me sale, sigo con el problema

  9. Miguel dice:

    Ya esta solucionado. Muchas Gracias por la ayuda

  10. Asegurate de tener instalado el

    libmysqlclient16-dev

Deja un comentario


Licencia y uso

Las técnicas demostradas en los tutoriales pueden ser utilizadas sin ninguna limitación y tampoco es obligatorio dar una atribución.


Los textos, imágenes y tutoriales son propiedad de sus respectivos autores, nuestro contenido se encuentra bajo licencia Creative Commons Share-Alike.

Escribe algo para el sitio

El escribir un tutorial o un artículo, mandarnos un enlace para Ubicuos, no solamente es una forma de obtener publicidad, si no también de dar algo a la comunidad y nosotros te lo recompensamos con los premios del mes! Leer más de nuestras promociones

¿Sugerencias?

Este es TU sitio, si tienes sugerencias o ideas de cómo podemos mejorarlo para ti, ¡Por favor háznoslos saber!

Hacemos nuestro mayor esfuerzo en proporcionar un sitio útil y amigable y esperamos que disfrutes tu tiempo aquí.

Ayuda a Difundir

Te gusta Ubicuos?

Ve las formas en que nos puedes apoyar.

Apoyando a Ubicuos.com

Submit your linkClose

-->