bind9.9.2+MySQL 其实就是bind调用mysql数据库表内的东西(表内的数据就是zone区域数据)。 其实原理都是一样的 只是这里bind 的所有bind zone区域文件都存在mysql内。
bind调用mysql无非是一个是调用mysql驱动,另外一个mysql-bind这个包来实现。
这里mysql就无需多讲,更新修改 /etc/apt/sources.list 源之后 apt-get update 跟新包
然后apt-get install mysql mysql-server 即可。
我使用的是bind。9.9.2.
   wget ftp://ftp.isc.org/isc/bind9/9.9.2/bind-9.9.2.tar.gz
   tar -zxvf bind-9.9.2.tar.gz 
   下载mysql-bind
   wget %20src/mysql-bind.tar.gz
   tar -zxvf mysql-bind.tar.gz
   先将mysql-bind下两个文件 copy到bind-9.9.2/下 具体如下:
cd mysql-bind/
cp mysqldb.c ../bind-9.9.2/bin/named/
   cp mysqldb.h ../bind-9.9.2/bin/named/include/named/
   修改bind-9.9.2/bin/named/Makefile.in文件 具体如下:
cd ../bind-9.9.2/
   vim bin/named/Makefile.in              
   DBDRIVER_OBJS =                           
   DBDRIVER_SRCS =                           
   DBDRIVER_INCLUDES =                       
   DBDRIVER_LIBS =                           
   修改成一下内容:
   DBDRIVER_OBJS = mysqldb.@O@               
   DBDRIVER_SRCS = mysqldb.c                 
   DBDRIVER_INCLUDES = -I'/usr/include/mysql' #(由mysql_config--cflags命令产生)
   DBDRIVER_LIBS = -L'/usr/lib/mysql' -lmysqlclient -lz -lcrypt -lnsl -lm -lc -lnss_files -lnss_dns -lresolv -lc -lnss_files -lnss_dns -lresolv apt-get install libssl-dev   #(由mysql_config--libs命令产生)
   我们还需要修改另一个文件
    vim bin/named/main.c 添加如下 行
   #include <include/mysqldb.h>
   mysqldb_init();          (在ns_server_create()之前)
   mysqldb_clear();        (在ns_server_destroy()之后)
   修改好了之后我们就可以编译bind.9.9.2了。
./configure --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/libexec --sharedstatedir=/usr/com --mandir=/usr/share/man --infodir=/usr/share/info --with-libtool --localstatedir=/var --enable-threads --with-openssl=no --enable-epoll --with-openssl
   apt-get install openssl libss-dev   #(如果报错openssl问题 先安装这两个)
   make -j 8
   make install
   bind9.9.2+mysql-bind 就此已经安装完成! 我们来配置下bind
rndc-confgen >/etc/rndc.conf
   cat /etc/rndc.conf|tail |head -9 |sed "s/^#//g" > /etc/named.conf
   dig -t NS .>/var/named/named.root
修改配置文件,连接数据库的相关配置  
vim /etc/named.conf
添加:
zone "test.net"  {
       type master;
       database "mysqldb test net 127.0.0.1 root root";
};
zone "168.192.in-addr.arpa" {
       type master;
       database "mysqldb test 168_192 localhost root root";
}; 
备注:     
database "mysqldb test net 127.0.0.1 root root";
database "mysqldb 数据库名 表名 数据库serverIP 数据库用户 数据库密码";
前提是已经创建了数据库   以下是创建数据库的实例:
正反向解析实例:       
正向解析DNS
CREATE TABLE net (
       name varchar(255) default NULL,
       ttl int(11) default NULL,
       rdtype varchar(255) default NULL,
       rdata varchar(255) default NULL
       ) TYPE=MyISAM;
INSERT INTO net VALUES ('test.net', 259200, 'SOA', 'test.net.    200505101 28800 7200 86400 28800');
INSERT INTO net VALUES ('test.net', 259200, 'NS', 'ns1.test.net.');
INSERT INTO net VALUES ('ns1.test.net', 259200, 'A', '192.168.2.2');
INSERT INTO net VALUES ('www.test.net', 259200, 'A', '192.168.2.1');
INSERT INTO net VALUES ('learyx.test.net', 259200, 'A', '192.168.2.222');
反域DNS
CREATE TABLE 168_192 ( 
name varchar(255) default NULL, 
ttl int(11) default NULL, 
rdtype varchar(255) default NULL, 
rdata varchar(255) default NULL 
) TYPE=MyISAM;

