If you are interested in developing applications in C using MySQL on OpenWrt under MIPS, you will need the connector to communicate to the data base. At MySQL web page you will find all connectors compiled for x86 and sources files for compiling to other architectures. Let’s see how to compile the connector for MIPS using those sources files:
- Download the MySql connector for C (version 6.0.2 was used in this example).
- Extract the downloaded file enter into folder mysql-connector-c-6.0.2:
tar xvzf mysql-connector-c-6.0.2.tar.gz cd mysql-connector-c-6.0.2
- Install cmake. In Debian (and spin-offs) just type:
aptitude install cmake
- Set the cross-compiling environment for MIPS, by exporting the following 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
- Generate the Makefile:
cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/install_path
- Compile the connector:
make
- Install the binaries:
make install
- Verify if it was compiled for MIPS correctly:
file /install_path/lib/libmysql.so.16.0.0 /install_path/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
Using the connector
Now you can use the connector in your C and MSQL projects on OpenWrt for MIPS, just add the paths for includes and libraries as follow:
gcc client.c -o client -I/install_path/include -L/install_path/lib -lmysqlclient -lz -ldl
Learning the API
If you are interested in learning the API, I recommend you MySQL Developer’s Library de Paul DuBois book which has really good example in chapter 7 on how to do SQL prepared statements using the C connector for MySQL.

Planeta Linux
#1 by Luis Gallardo on 16/09/2011 - 3:03 pm
@Helio as far you get the sources you can compile any connector to other platform following these steps. Cheers!
#2 by Helio Capella on 16/09/2011 - 2:54 pm
Thanks a lot for this helpful guide, Is it possible to do the same with mysql c++ connector?