Apache has a neat module called mod_dbd that allows your Apache modules to connect to a database. mod_dbd interfaces with apr_dbd, an Apache Portable Runtime (APR) abstraction layer around database specific drivers.
Back when Ubuntu 7.04 (fiesty) was released, a MySQL driver was not bundled with Apache for licensing concerns. So, in order to use mod_dbd to connect to a MySQL database, you need to get the MySQL driver source code from WebThing (apr_dbd_mysql.c) and manually re-compile apr-utils.
You also need the source code for Apache 2.2.3 (which includes apr-utils 1.2.7) from the Ubuntu 7.04 repositories, then copy the apr_dbd_mysql.c file into the Apache source apr-utils/dbd directory. The Ubuntu guys made a nice INSTALL.MySQL file in the apr-utils with some basic instructions.
What they don’t tell you is you need to install the MySQL source. To make matters worse, once you install it, the apr-utils 1.2.7 configure script can’t find it, even if you tell it where it is.
<snip> configure: checking for mysql in /usr/src/mysql-dfsg-5.0-5.0.38/include checking mysql.h usability... no checking mysql.h presence... no checking for mysql.h... no <snip>
This apparently was a known issue and was fixed in apr-utils 1.2.8.
Starting with apr-utils 1.2.11, the MySQL driver is bundled with it. Unfortunately, even Ubuntu 7.10 (gutsy) still ships with apr-utils 1.2.7. So, you are forced to download the source and compile.
Or, you can wait a couple days and Ubuntu 8.04 (hardy) which has Apache 2.2.8 and apr-utils 1.2.11. In theory the MySQL driver will work out of the box.
As for me, I’ll be compiling Apache, PHP, MySQL, memcached, and <insert essential infrastructure software> from source like I should have done in the beginning.
Cris,
This page helped me with a problem regarding the package RMySQL for R lagnguage on Ubuntu 8.04.
During the installation, I got the same error due to the absence of mysql.h .
After reading your blog, I managed to fix the problem.
This is what worked for me …
* Install packages:
libmysqlclient15-dev
libmysql++-dev
libapr1-dbg
libapr1-dev
libaprutil1-dbg
libaprutil1-dev
Then from R …
> install.packages(“RMySQL”)
Hope this will help other people.
Comment by Marcelo — September 10, 2008 @ 1:04 pm