采用宿主机+虚拟机构建一个微型网络,以便实现IDS与数据库分离。
宿主机:windows xp sp2 + apache-2.0 + mysql-5.0.15 + php-5.0(装好apache与php以便将来做数据分析)
虚拟机:Red Hat Linux Enterprise 4 + libpcap + snort-2.0.5 + libmysqlclient + libpthread
由于之前做网站时已经在XP上安装好apache-2.0 + mysql-5.0.15 + php-5.0, 学习多线程编程时在linux中装好了libpcap和libpthread,这里记录的主要是libmysqlclient及snort的安装。
一、从RPM包安装libmysqlclient:
由于数据库服务器安装在xp上,因此,在linux中只需安装mysql的客户端库就可以了。
根据snort.org上的《Snort Installation Manual - Snort, MySQL, Redhat 7.3 》中
《snort Installation》小节的指导下过来两个包:
MySQL-client-5.0.22-0.i386.rpm
MySQL-devel-5.0.22-0.i386.rpm
键入以下命令安装:
#rpm -ivh MySQL-client-5.0.22-0.i386.rpm
#rpm -ivh MySQL-devel-5.0.22-0.i386.rpm
安装好以后,在 /usr/include/mysql/ 目录中存放有libmysqlclient的头文件mysql.h,在 /usr/lib/mysql/ 目录中存放有mysql的库文件,但只有.a结尾的(即静态库)库文件(包括libmysqlclient.a),没有.so(共享库)文件。
使用如下命令编译一个简单的测试程序(代码在本文结尾处给出):
#gcc -c -I/usr/include/mysql mysql-test.c
此命令成功生成了目标文件mysql-test.o?BR>继续键入以下命令。
#gcc -o --static mysql-test mysql-test.o -L/usr/lib/mysql -lmysqlclient
注意参数的顺序,gcc有时会因为某些参数顺序不对而报错,某些相关参数的具体顺序应该如何,还望高人指点。
以上命令确给出了数不清的“引用未定义符号”的错误信息,引用未定义符号的是libmysqlclient.a
带着希望折腾了许久,最后决定从源码包安装mysql客户端程序库。
卸载MySQL-client与MySQL-devel:
#rpm -e MySQL-client
#rpm -e MySQL-devel
以上两条命令将直接删除rpm -ivh 所释放的所有文件及其创建的文件夹。
二、从源码包安装mysql客户端程序库。
#tar -zxvf mysql-5.0.22.tar.gz (mysql-5.0.22.tar.gz位于/root目录)
#cd mysql-5.0.22
进入mysql-5.0.22目录,阅读 INSTALL-SOURCES 文件,并看到几个关键选项:
1、--without-server
只编译安装客户端程序库,不编译mysql服务器程序,这在本机只需要libmysqlclient时很有用。
2、--enable-thread-safe-client
让libmysqlclient中的例程具有线程安全性,要编写多线程的mysql客户端程序时就少不了了,这要求本地拥有多线程库。
3、--prefix 指定安装目录
启动configure脚本:
#mkdir /usr/local/mysql
#./configure --without-server --enable-thread-safe-client --prefix=/usr/local/mysql
大概6分钟后,configure脚本生成好所有的Makefile后退出。
当前目录下执行make进行编译:
#make
这个过程除了时间长一点以外没有别的,大概一个钟头后make完成编译任务。
安装:
#make install
这个过程也比较快,约两三分钟。
安装完成以后,mysql.h文件在 /usr/local/mysql/include/mysql/目录中(这里include目录中还有一个mysql子目录)。
以lib开头的库文件在/usr/local/mysql/lib/mysql/目录中(与mysql.h的情况一样,这里lib目录中还有一个mysql子目录)。
此时再来链接测试程序的目标文件:
#gcc -o mysql-test mysql-test.o -L/usr/lib/mysql -lmysqlclient
OK,一切正常,链接成功。

添加到雅虎收藏