Conector MySql para OpenWrt (MIPS)



Si estás interesado en desarrollar aplicaciones en C usando MySQL en OpenWrt bajo MIPS, necesitarás el conector respectivo para poder comunicarte con la base de datos. En la página de MySQL solo encontrarás los conectores compilados para x86 y las fuentes por si deseas compilarlo por tu cuenta para x86 y otras arquitecturas. Este es el que usaremos para poder compilar para MIPS el conector de MySQL. Veamos como hacerlo:

  1. Descarga el conector MySql para C (en este ejemplo uso la versión 6.0.2).
  2. Descomprimir el archivo descargado y entrar en el directorio mysql-connector-c-6.0.2:
    tar xvzf mysql-connector-c-6.0.2.tar.gz
    cd mysql-connector-c-6.0.2
  3. Instalar cmake. Si estás en Debian (o derivados) basta con hacer:
     aptitude install cmake
  4. Configurar el ambiente para cross-compilar para MIPS, exportando las siguientes variables:
    export CHROOT=/home/lgallard/backfire
    export TOOLCHAIN_PATH=$CHROOT/staging_dir/toolchain-mips_r2_gcc-4.3.3+cs_uClibc-0.9.30.1
    export PATH=$PATH:$TOOLCHAIN_PATH/usr/bin/
    export AR=$TOOLCHAIN_PATH/usr/bin/mips-openwrt-linux-uclibc-ar
    export AS=$TOOLCHAIN_PATH/usr/bin/mips-openwrt-linux-uclibc-as
    export LD=$TOOLCHAIN_PATH/usr/bin/mips-openwrt-linux-uclibc-ld
    export NM=$TOOLCHAIN_PATH/usr/bin/mips-openwrt-linux-uclibc-nm
    export CC=$TOOLCHAIN_PATH/usr/bin/mips-openwrt-linux-uclibc-gcc
    export CPP=$TOOLCHAIN_PATH/usr/bin/mips-openwrt-linux-uclibc-cpp
    export GCC=$TOOLCHAIN_PATH/usr/bin/mips-openwrt-linux-uclibc-gcc
    export CXX=$TOOLCHAIN_PATH/usr/bin/mips-openwrt-linux-uclibc-g++
    export RANLIB=$TOOLCHAIN_PATH/usr/bin/mips-openwrt-linux-uclibc-ranlib
  5. Generar el archivo Makefile:
    cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/ruta_de_instalacion
  6. Compilar el conector:
    make
  7. Instalar los archivos binarios:
    make install
  8. Verificar que se haya compilado correctamente para MIPS:
    file /ruta_de_instalacion/lib/libmysql.so.16.0.0
    
    /ruta_de_instalacion/lib/libmysql.so.16.0.0: ELF 32-bit MSB shared object, MIPS, MIPS32 rel2 version 1 (SYSV), dynamically linked, with unknown capability 0x41000000 = 0xf676e75, with unknown capability 0x10000 = 0x70403, not stripped

Uso del conector

Ahora ya podrás usar el conector en tus proyectos de C y  Mysql en OpenWrt para MIPS, solo basta agregar las rutas de los includes y la librerías de la siguiente forma:

gcc cliente.c -o cliente  -I/ruta_de_instalacion/include -L/ruta_de_instalacion/lib -lmysqlclient -lz -ldl

Aprender el API

Si estás interesado en aprender el API, te recomiendo el libro de MySQL Developer’s Library de Paul DuBois el cual tiene un ejemplo muy bueno de cómo hacer sentencias preparadas usando el conector de C para MySQL en el capítulo 7.

Recursos


,

  1. #1 by Luis Gallardo on 16/09/2011 - 3:03

    @Helio as far you get the sources you can compile any connector to other platform following these steps. Cheers!

  2. #2 by Helio Capella on 16/09/2011 - 2:54

    Thanks a lot for this helpful guide, Is it possible to do the same with mysql c++ connector?

Los Comentarios están cerrados