当前位置: 首页 > 工具软件 > bi-bind > 使用案例 >

bind9mysql_终于完成了bind9 + mysql-bind 的编译安装

佘修为
2023-12-01

从昨晚到现在,不停的修改编译,终于编译成功了,不过把一些选项去掉了,不知道执行还有没有问题。

从源码安装bind, 加载mysql支持

1 下载bind的源代码包, 和mysql-bind包

2 解压两个包, 将mysql-bind里的mysqldb.c 和mysqldb.h分别拷到bind的bind9/bin/named/include和bind9/bin/named目录下.

3 vi bind9/bin/named/Makefile.in; 设置里面的DBDRIVER_SRCS,DRIVER_OBJS,DBDRIVER_INCLUDES,DBDRIVER_LIBS等选项. 分别对应刚才的mysqldb.o和mysqldb.c, 以及你的mysql_config --cflags和 mysql_config --libs的输出.比如我的设置是:

DBDRIVER_OBJS = mysqldb.o

DBDRIVER_SRCS = mysqldb.c

DBDRIVER_INCLUDES = -I'/usr/local/mysql/include'

DBDRIVER_LIBS = -L'/usr/local/mysql/lib' -lmysqlclient -lz -lcrypt -lnsl -lm -lc -lnss_files -lnss_dns -lresolv

接着vi bind9/bin/named/main.c, 在头文件中添加 #include "mysqldb.h". 然后在call to ns_server_create()添加mysqldb_init (); 在ns_server_destroy() 之前添加 mysqldb_clean().

4 进入bind9目录, ./configure, make, make install 安装bind9.

5 创建链接ln -s /usr/local/sbin/rndc /usr/sbin/rndc ln -s /usr/local/sbin/named /usr/sbin/named

6 创建rndc.conf配置文件。/usr/local/sbin/rndc-confgen > /etc/rndc.conf

7 创建rndc.key文件。将rndc.conf文件中注释部分关于key和controls的字段拷贝生成rndc.key.

8 创建named.conf文件并根据自己的实际需要编辑文件. 同时对应要创建相应的数据库. 这些就不细说了.

参考文章: http://bbs.chinaunix.net/forum/viewtopic.php?t=94879&show_type=new

但是在mysql-bind的说明文档中,mysqldb_clean()是添加在ns_server_destroy() 后的,有一点不同.

但我编译时说ld找不到lnss_files 和nss_dns,所以我把这相关的去掉了,变成了

DBDRIVER_LIBS = -L'/usr/local/mysql/lib' -lmysqlclient -lz -lcrypt -lnsl -lm -lc -lresolv

另外,编译时要注意环境变量,我把所有的环境变量一下子加了进来了。:)

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/etc:/usr/local/bin:/usr/local/sbin:/usr/ccs/bin:/usr/ucb:/usr/local/mysql/bin:/usr/local/bin/flex

export PATH

CC=gcc;export CC

LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/usr/local:/usr/local/mysql/lib/mysql:/usr/local/mysql/include/mysql    export LD_LIBRARY_PATH

再进行服务器配置的测试,看看省略掉的有没有问题。

 类似资料: