安装bind 
tar xfzv bind-9.3.1.tar.gz 
tar xfzv mysql-bind-0-1.tgz 
cp mysql-bind-0.1/mysqldb.c bind-9.3.1/bin/named 
cp mysql-bind-0.1/mysqldb.h bind-9.3.1/bin/named/include 
cd bind-9.3.1 
vi bin/named/Makefile.in 
将 
DBDRIVER_OBJS = 
DBDRIVER_SRCS = 
DBDRIVER_INCLUDES = 
DBDRIVER_LIBS = 
如下配置 
DBDRIVER_OBJS = mysqldb.@O@ 
DBDRIVER_SRCS = mysqldb.c 
DBDRIVER_INCLUDES = -I‘/usr/local/mysql/include/mysql‘ 
DBDRIVER_LIBS = -L‘/usr/local/mysql/lib/mysql‘ -lmysqlclient -lz -lcrypt -lnsl -lm -lc -lnss_files -lnss_dns -lresolv -lc -lnss_files -lnss_dns -lresolv 
修改main.c文件 
vi bin/named/main.c 
找到/* 
* Add calls to register sdb drivers here. 
*/ 
/* xxdb_init(); */ 
添加 mysqldb_init(); 
找到 
/* 
* Add calls to unregister sdb drivers here. 
*/ 
/* xxdb_clear(); */ 
添加 mysqldb_clear(); 
./configure --prefix=/usr/local/named --enable-threads #--enable-threads开启多线程处理能力 
make 
make install 
cd /usr/local/named   
mkdir etc 建立etc目录 
sbin/rndc-confgen >; etc/rndc.conf 生成rndc控制命令的key文件 
cd etc 
tail -10 rndc.conf | head -9 | sed s/#\ //g >; named.conf 从rndc.conf文件中提取named.conf用的key 
自动在/usr/local/named/etc 生成named,conf文件 
建立localhost.zone文件 
vi localhost.zone 
$TTL    86400 
$ORIGIN localhost. 
@                       1D IN SOA       @ root ( 
                                      42              ; serial (d. adams) 
                                      3H              ; refresh 
                                      15M             ; retry 
                                      1W              ; expiry 
                                      1D )            ; minimum 
                      1D IN NS        @ 
                      1D IN A         127.0.0.1 
建立named.local文件 
vi named.local 
$TTL    86400 
@       IN      SOA     localhost. root.localhost.  ( 
                                    1997022700 ; Serial 
                                    28800      ; Refresh 
                                    14400      ; Retry 
                                    3600000    ; Expire 
                                    86400 )    ; Minimum 
            IN      NS      localhost. 
1       IN      PTR     localhost. 
dig命令直接生成named.root文件 
dig >; named.root   
配置 named.conf 
增加如下内容: 
controls { 
       inet 127.0.0.1 port 953 
        * directive below.  Previous versions of BIND always asked 
        * questions using port 53, but BIND 9.31 uses an unprivileged 
        * port by default. 
        */ 
       // query-source address * port 53; 
                                                             24,9         
}; 
// 
// a caching only nameserver config 
// 
zone "." IN { 
       type hint; 
       file "named.root"; 
};       
zone "localhost" IN { 
       type master; 
       file "localhost.zone"; 
       allow-update { none; }; 
}; 
zone "0.0.127.in-addr.arpa" IN { 
       type master; 
       file "named.local"; 
       allow-update { none; }; 
}; 
zone "mydomain.com" { 
type master; 
database "mysqldb dnsdb mydomain localhost root passwd"; 配置你的数据库名,表名,MYSQL主机,MYSQL用户,MYSQL密码 
}; 
zone "19.202.220.in-addr.arpa" { 
type master; 
database "mysqldb dnsdb ptr localhost root passwd";  配置你的数据库名,表名,MYSQL主机,MYSQL用户,MYSQL密码 
}; 
--------------------------------------------------------------------------------BIND安装完成 
5. 我是用MYSQLADMIN来建立数据库的和倒数据的,APACHE下安装MYSQLADMIN我这里就不详细讲了。 
参照mysql-bind-0-1目录下的README建立数据库dnsdb 
正向解析数据库mydomain表结构 
CREATE TABLE mydomain ( 
name varchar(255) default NULL, 
ttl int(11) default NULL, 
rdtype varchar(255) default NULL, 
rdata varchar(255) default NULL 
) TYPE=MyISAM; 
以下是正向解析示范可以直接倒入 
INSERT INTO mydomain VALUES (‘mydomain.com‘, 259200, ‘SOA‘, ‘mydomain.com. www.mydomain.com. 200309181 28800 7200 86400 28800‘); 
INSERT INTO mydomain VALUES (‘mydomain.com‘, 259200, ‘NS‘, ‘ns0.mydomain.com.‘); 
INSERT INTO mydomain VALUES (‘mydomain.com‘, 259200, ‘NS‘, ‘ns1.mydomain.com.‘); 
INSERT INTO mydomain VALUES (‘mydomain.com‘, 259200, ‘MX‘, ‘10 mail.mydomain.com.‘); 
INSERT INTO mydomain VALUES (‘w0.mydomain.com‘, 259200, ‘A‘, ‘192.168.1.1‘); 
INSERT INTO mydomain VALUES (‘w1.mydomain.com‘, 259200, ‘A‘, ‘192.168.1.2‘); 
INSERT INTO mydomain VALUES (‘mydomain.com‘, 259200, ‘Cname‘, ‘w0.mydomain.com.‘); 
INSERT INTO mydomain VALUES (‘mail.mydomain.com‘, 259200, ‘Cname‘, ‘w0.mydomain.com.‘); 
INSERT INTO mydomain VALUES (‘ns0.mydomain.com‘, 259200, ‘Cname‘, ‘w0.mydomain.com.‘); 
INSERT INTO mydomain VALUES (‘ns1.mydomain.com‘, 259200, ‘Cname‘, ‘w1.mydomain.com.‘); 
INSERT INTO mydomain VALUES (‘www.mydomain.com‘, 259200, ‘Cname‘, ‘w0.mydomain.com.‘); 
INSERT INTO mydomain VALUES (‘ftp.mydomain.com‘, 259200, ‘Cname‘, ‘w0.mydomain.com.‘); 
反向解析数据库ptr表结构 
CREATE TABLE ptr ( 
name varchar(255) default NULL, 
ttl int(11) default NULL, 
rdtype varchar(255) default NULL, 
rdata varchar(255) default NULL 
) TYPE=MyISAM; 
以下是反向解析示范可以直接倒入 
INSERT INTO `ptr` VALUES (‘19.202.220.in-addr.arpa‘, 17600, ‘SOA‘, ‘mydomain.com. www.mydomain.com. 200309181 28800 7200 86400 28800‘); 
INSERT INTO `ptr` VALUES (‘19.202.220.in-addr.arpa‘, 17600, ‘NS‘, ‘ns0.mydomain.com.‘); 
INSERT INTO `ptr` VALUES (‘19.202.220.in-addr.arpa‘, 17600, ‘NS‘, ‘ns1.mydomain.com.‘); 
INSERT INTO `ptr` VALUES (‘82.19.202.220.in-addr.arpa‘, 17600, ‘PTR‘, ‘mail.mydomain.‘); 
--------------------------------------------------------------------------------数据库建立完成 
6. 启动你的BIND 测试BIND是否能正常工作 
/usr/local/named/sbin/named -c /usr/local/named/etc/named.conf & 
然后在你WINDOWS机器上将这个配置了BIND的IP设置为DNS然后运行nslookup测试 
如果出现证明反向解析正常 
Default Server:  mail.mydomain 
Address:  220.202.19.2 
>; 
如果PING w0.mydomain.com 
解析地址为192.168.1.1 证明正向工作正常 
7.结束语 
BIND + MYSQL 在增加A记录 MX记录 PTR记录都不需要从新启动BIND,每增加一个正向的解析域名都必须在named.conf正增加如下内容 
zone "youname.com" { 
type master; 
database "mysqldb dnsdb mydomain localhost root passwd"; 配置你的数据库名,表名,MYSQL主机,MYSQL用户,MYSQL密码 
};