虽然不是干运维的,但在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 = mysqldb.@O@

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

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 -r /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、正常启动服务

/usr/local/named/sbin/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

mysql配置域名_bind+mysql域名解析的简单配置相关推荐

  1. winxp MySQL 5.6.35 免安装版 简单配置

    Links MySQL 5.6.35 MySQL 5.6.35 32位 下载地址 Reference MySQL-5.6.13免安装版配置方法 Steps 1. 解压文件,放到任意一个路径(好像不要有 ...

  2. 华三s5000配置镜像接口_H3C S5000交换机简单配置

    H3C S5000 交换机简单配置 常用命令 ------- 此状态下为用户模式, 只能查看交换机的配置, 不能进行具体配置 system view ---------- 由用户模式进入配置模式,可简 ...

  3. 服务器php网站配置域名访问,phpstudy在服务器上配置域名

    phpstudy在服务器上配置域名 内容精选 换一换 可以.一个服务器上可以同时配置多个证书.证书是与域名或IP绑定的,对服务器的数量没有限制.如果您购买的证书绑定的域名用于多台服务器,则购买的证书需 ...

  4. mysql配置域名访问_修改Host,配置域名访问

    Activity中获取view的高度和宽度为0的原因以及解决方案 在activity中可以调用View.getWidth.View.getHeight().View.getMeasuredWidth( ...

  5. h5网页使用微信支付JSAPI(申请微信服务号配置域名、获取用户code、配置JSAPI授权目录)

    场景: 要在别人家的微信公众号内放入我们的h5网页,涉及到支付只能使用JSAPI支付.从一无所有到成功上线的记录--真难 官方链接地址 1. 微信服务号配置 前提:必须要有一个微信服务号,而且要完成微 ...

  6. linux进入raid卡配置,Linux上Raid卡的简单配置与使用

    使用 RAID 可以提高服务器的性能.不同 RAID 的级别,性能会有所不同.它通过容错和高可用性来保存我们的数据. 下面记录在linux上配置和使用raid卡的过程. 资源 Linux主机 Raid ...

  7. 服务器域名解析与nginx配置

    最近搭建了个阿里云服务器,然后买了个域名,准备和服务器绑定起来,用来访问项目,下面分享一下步骤. 首先当然是购买域名购买服务器,然后在阿里云或者腾讯云的域名控制台进行域名的实名认证等等信息,关键的步骤 ...

  8. 小狼毫Rime输入法简单配置指南

    目录 为什么选择它?----Rime 一.下载 二.安装 1.官方安装包下载 2.安装选择 3.安装完成 三.配置小狼毫 语言栏设置 1.简体设置 2.输入框配置 3.字符配置 4.英文输入库配置 为 ...

  9. 「macOS」我的终端我做主——iTerm2+Homebrew+oh-my-zsh+Powerline安装及简单配置

    「macOS」我的终端我做主--iTerm2+Homebrew+oh-my-zsh+Powerline安装及简单配置 一.iTerm2安装和简单配置 01.下载iTerm2 02.安装iTerm2 0 ...

最新文章

  1. ubuntu14.04上安装python3.6
  2. 亚洲杯:打平韩国即可小组第一 国足会继续带来惊喜吗?
  3. c语言整数检验,C程序整数缺陷的检测与修复
  4. Angular界面元素CSS样式的条件式施加方式
  5. 最好用的koa2+mysql的RESTful API脚手架,mvc架构,支持node调试,pm2部署。
  6. Java开发中的常见危险信号
  7. let的解构赋值_解构赋值还有这么多玩法?
  8. 关于office2010的mso问题和卸载重装问题
  9. 【AllenNLP】: 自定义predictor—输入文本输出中文
  10. 配置Firefox火狐浏览器burpsuite https抓包
  11. 小狼毫五笔输入法设置
  12. 【嵌入式】CPU性能提升:流水线机制
  13. STC11/10xx系列单片机独立波特率发生器设置
  14. 易语言 json取成员数 根节点就是数组
  15. TCP和UDP协议常用端口汇总
  16. MySQL索引的前世今生
  17. c语言加载本地图片,Unity加载本地图片的2种方式
  18. 芝麻开门c语言答案,《芝麻开门》题库大曝光 不服来测!
  19. Zookeeper到底是干嘛的
  20. Win10系统安装MySQL8.0.13遇到的问题!

热门文章

  1. 自定义控件五:仿安智市场手机清理功能
  2. 最新OmniPeek无线驱动详细列表与下载说明/支持捉空口包的网卡
  3. 无线网卡芯片rtl8821CU-linux驱动解决方案
  4. 立体车库仿真运行,立体车库模拟运行,立体车库仿真模拟运行,基于西门子博图S7-1200plc与触摸屏HMI的3??3智能立体车库仿真控制系统设计
  5. Android recyclerview嵌套多个EditText 请EditText输入上下联动示例
  6. 英特尔用连接与智能走进未来教育
  7. javascript 资料型態/结构验证库 : Skeletons
  8. 利用子网掩码实现子网划分
  9. You aren‘t using a compiler supported by lombok, so lombok will not work and has been disabled.
  10. python之pickle库