bind+mysql域名解析的简单配置

虽然不是干运维的,但在IT江湖打酱油也难免受到高人的影响,所以在很早就听说bind可以和数据结合使用,一直都没有时间去研究;今天恰好一个同事问到bind安装的问题,就顺便研究了一下;下面将我的操作过程共享个各位,期间查找了不少网络上的资料,在这里感谢他们。好了,下面开始我们正题,欢迎各位轻轻的拍砖,哈哈哈……。

软件准备:(本人环境)

Centos6.2

Mysql、bind-9.3.2.tar.gz、mysql-bind.tar.gz

备注:9.4.2以上版本都已经包含了DLZ补丁,本人认为就不需要mysql_bind这个驱动了,有关操作请查阅相关参考资料,这里不讨论。

安装篇

一、安装Mysql

因为后面需要使用mysql的头文件和库文件,所以我这边使用源码安装,当然,如果单独安装Headers and libraries应该也是可以的。

1、解压mysql;

2、安装mysql,这个直接看INSTALL-SOURCE安装知道就可以了,这里简单过一下。

> groupadd mysql

> useradd -g mysql mysql

> gunzip < mysql-VERSION.tar.gz | tar -xvf -

> cd mysql-VERSION

> ./configure --prefix=/usr/local/mysql

> make

> make install

> cp support-files/my-medium.cnf /etc/my.cnf

> cd /usr/local/mysql

> bin/mysql_install_db --user=mysql

> chown -R root  .

> chown -R mysql var

> chgrp -R mysql .

> bin/mysqld_safe --user=mysql &

具体查看Mysql的想安装过程。

3、注意,这样安装好以后,我们的头文件和库文件分别在:

/usr/local/mysql/include/mysql/和/usr/local/mysql/lib/mysql

其实使用rpm安装也是可以的,安装成是使用相关命令查找到需要的这两个文件目录即可

二、分别解压mysql-bind.tar.gz和bind-9.3.2.tar.gz

1、将mysql-bind.tar.gz解压,生成文件夹mysql-bind;

2、将bind-9.3.2.tar.gz 解压,生成文件夹bind-9.3.2;

3、将mysql-bind里面主要有mysqldb.c和mysqldb.h两个文件,分别拷贝到bind源文件的bin/named和bin/named/include/named/目录下

4、编辑bind源文件目录的bin/named/Makefile.in文件,修改如下几个字段:

DBDRIVER_OBJS = [email protected]@

DBDRIVER_SRCS = mysqldb.c

DBDRIVER_INCLUDES = -I‘/usr/local/mysql/include/mysql/‘   #mysql安装3的内容

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

5、编辑bind源文件bin/named/main.c

5.1、在main.c开头包含mysqldb.h,#include <named/mysqldb.h>

5.2、在main.c文件中的函数setup(void)里面ns_server_create()的前面添加mysqldb_init();

5.3、在函数cleanup(void)里面ns_server_destroy()的后面添加mysqldb_clear();

备注:相关区域会有提示信息

6、编译安装bind

>./configure --prefix=/usr/local/named

程序将安装到/usr/local/named/下

还有其他选项可以选择使用:

--enable-threads:开启多线程处理能力

--disable-openssl-version-check:禁止openssl版本的检查

--enable-largefile:启用大文件支持

--disable-ipv6:关闭ipv6支持

>make

>make install

配置篇

7、生成etc中相关配置文件;

通过上面完成编译安装后,在程序的安装目录/usr/local/named中发现没有etc文件夹,更没有本应该放在其下的rndc.conf和named.conf配置文件,我们通过一些方法生成这两个重要的文件。

7.1、在named目录下建立etc文件夹;

>mkdir  etc

7.2、生成rndc.conf文件

>sbin/rndc-confgen  /dev/urandom  >  rndc.conf

7.3、生成name.conf文件

将rndc.conf文件拷贝一份,命名为name.conf;

使用vim编辑name.conf;

文件中有提示语:

# Use with the following in named.conf, adjusting the allow list as needed:

按照提示,将该提示以上的(没有被注释的部分)全部删除或注释掉,将其下的被注释信息全部取消注释;

7.4、生成rndc.key文件(该文件貌似没用,可以在启动时提示需要改文件是建立)

>rndc-confgen  -r  /dev/urandom  -a

(自动生成到named的etc目录下)

更权限:

>chomd  644  rndc.key

备注:在RHEL6上没有caching-named这个包,所以在上面命令中用/dev/urandom构建了一个虚拟的随机数生成器。

8、配置数据信息:

8.1、创建数据库:create database mydomain ;

8.2、创建表:

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;

8.3、添加测试数据

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.‘);

9、配置bind连接数据

使用vim编辑name.conf文件,在底端追加写入数据信息:

zone "mydomain.com" {

type master;

notify no;

database "mysqldb dbname tablename hostname user password";

};

mydomain.com为要解析的域名,本例为插入数据库的mydomain.comt域名

dbname 为数据库名本例为mydomain,

tablename为数据表名,本例为mydomain

hostname为数据库服务器地址,本例为本机127.0.0.1

user 为可操作前面数据库表的数据库用户名,本例为root

password 为对应数据库用户名的密码,本例为 123456

10、测试服务程序

打开named测试/usr/local/named/sbin/named -g -d 1 -c /usr/local/named/etc/named.conf

或者直接 ./named  -g

如果没有出现错误信息说明安装基本正常,这是可以真正启动bind服务,用一台pc将DNS指向该服务器ping数据库中一个域名验证一下。

11、正常启动服务

./named

备注:

1、启动named,第一次运行它如果提示找不到libmysqlclient.so.15,这个文件是在mysql编译安装的时候已经生成了这个文件,可以手动拷贝他到/usr/lib/libmysqlclient.so.15,启动正常,可以解析所有域名。

2、如果启动时提示/usr/local/named/var/run/named.pid有问题,那么就手动在named下建立一个var/run/路径;

3、如果是服务器自身使用ping命令来验证,那么必须把服务器的DNS指向本机;即,编辑文件/etc/resolve..conf为

search localdomain

nameserver 127.0.0.1

4、网上有关文章有建立mysql和bind系统专用用户的操作,本文没有涉及相关内容,如需要建立请移步相关网站查询。

用数据库管理bind,有一个很大的优点就是主域名CNAME功能,也就是空主机头别名问题。数据库的管理提供了一个松散的语法检查格式,我们配置了什么,就能解析出什么,一方面容易出错,另外一方面也带来了灵活性。

主要参考资料:

1.http://www.xiaobo.li/article/81.html

2.http://blog.csdn.net/edmond999/article/details/4301585

3.http://wenku.baidu.com/link?url=jdSvvXyvLRtRyGMAkl5qwcQUQSh4WXQaoMR3XljmbLV_AK1O6jmC_xWoiGbcuKJjDVuuQ6HG52JNacQE8Gd2wJ-A5NZV1gZkmJDna7bT-Va

4.http://www.2cto.com/os/201304/199503.html

时间: 2024-07-30 21:59:35

bind+mysql域名解析的简单配置的相关文章

Apache ActiveMQ 持久化到MySQL数据库的简单配置

1.  前言 ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线.ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位. 关于ActiveMQ 的详细介绍请参考:http://baike.baidu.com/view/433374.htm?fr=aladdin 关于JMS的详细介绍请参考:http://baike.baidu.com/su

mysql主从复制的简单配置

0.环境: master:windows7,mysql5.5 slave:centos6.5(虚拟机),mysql5.1 1.先说下centos6.5安装mysql以及简要配置 yum install -y mysql-server mysql mysql-devel 通过这种方式安装的是mysql5.1版本 然后  cd /usr/share/doc/mysql-server-5.1.73/  cp my-large.cnf  /etc/my.cnf  vi /etc/my.cnf 在[mys

Unbuntu下Mysql安装和简单配置

ubuntu搭建mysql 参考http://www.cnblogs.com/wuhou/archive/2008/09/28/1301071.html1. sudo apt-get install mysql-server\ 需要制定root密码password吧2. vi /etc/mysql/my.cnf 注释掉binding-address=127.0.0.13.如果需要在服务器端配置mysql,安装mysql-client mysql -u root p4. 如果需要远程连接数据库服务

bind的简单配置

bind的简单配置 摘要:DNS  bind简单配置        FQDN        http://www.178linux.com.  WWW是主机名  .178linux.COM.是私有域名  .com.是DNS一级域名 .是根域 DNS解析顺序 /etc/hosts→DNS缓存→DNS域服务器 主机优先查找本地的hosts(/etc/hosts)文件,没有想对应的记录则去查找本地DNS客户端的解析缓存库,缓存库没有想对应的记录则询问本地配置的DNS服务器(DNS服务器配饰文件 /et

mysql主从简单配置

接上一篇源码安装mysql5.6. 主从服务器均安装了msyql5.6 主服务器和从服务器均开启了logbin日志. 主从服务器均开启了server-id,且serverid编号不一样. 主服务器配置同步的帐号 grant replication slave on *.* to 'repl'@'192.168.4.31' identified by 'repl'; flush privileges: show master status;看主服务器二进制文件信息. 可以从第一个二进制日志第一行开

Linux-dns基础知识和BIND的简单配置-2(正向解析和反向解析)

DNS服务器基本配置 bind详解:包名:bind进程:named协议:dns使用端口:53(tcp,udp)相关包:bind-chroot:将named进程的活动范围限定在chroot目录,保证安全性.bind-devel:与开发相关的头文件和库文件(编译安装bind时所需)bind-libs:bind服务器端和客户端都使用到的公共库文件bind-utils : bind客户端工具程序文件:/usr/sbin/namedbind权限相关:安装完named会自动创建用户named系统用户,nam

DNS服务器之简单配置(一)

名词解释: 域名: 域名是域名系统名字空间中,从当前节点到根节点的路径上所有节点标记的点分顺序连接. 域: 域是指域名系统名字空间中的一个子集,也就是树形结构名字空间中的一颗子树.这个子树根节点的域名就是该域的名字, 域的级别: 顶级域(TLD, Top Level Domain)是指域名系统名字空间中根节点下最顶层的域.顶级域也称一级域,顶级域的下级就是二级域,二级域的下级就是三级域,以此类推.每个域都是其上级域的子域.最早的顶级域名,也是现在说的国际域名,按照用途分为的7个大类: .com:

dns协议的简单配置

DNS(Domain Name System,域名系统),因特网上作为域名和ip相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串.通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析).DNS协议运行在UDP协议之上,使用端口号53. 域名系统作为一个层次结构和分布式数据库,包含各种类型的数据,包括主机名和域名.DNS数据库中的名称形成一个分层树状结构称为域命名空间.完全限定的域名 (FQDN) 唯一地标识在 DNS 分层树

MySQL 5.6初始配置调优

原文链接: What to tune in MySQL 5.6 after installation原文日期: 2013年09月17日翻译日期: 2014年06月01日翻译人员: 铁锚 随着 大量默认选项的改进, MySQL 5.6比以前版本需要调优的选项大为减少. 在本文中我将讲述需要优化的配置项. InnoDB设置 innodb_buffer_pool_size  -- 默认值为 128M. 这是最主要的优化选项,因为它指定 InnoDB 使用多少内存来加载数据和索引(data+indexe