bind9+mysql结合

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:
最近几天一直在bind9+mysql中盘旋,搞的头晕脑涨的,该死的DNS同步~呵呵,只能怪自己心急`总是搞一会儿就把bind停掉,今天起,就不停掉bind了,让他自己去同步吧,好了不废话了,我把安装步骤发出来和大家共项,有兴趣的照着做,高手给指点一二,谢谢,欢迎各种板砖,臭鸡蛋~
测试环境:ubuntu8.04
在万网花10元申请的域名服务器 ns1.edgora.cn 在这里鄙视他一下。NND这也要钱。
要解析的域名 xueku.org.cn
服务器IP地址 123.123.123.123
需要的软件包:bind9.5.tar.gz apache2  php5 php-mysql  mysql-bind.tar.gz phpmyadmin.gz mysql-server libmysqlclient15-dev php5-cli
1。apache2 php5 mysql-server 我就apt-get install 安装了,ubuntu打包文件还是很不错的,当然高手可以安装源代码`修改源代码安装可以匹配自己的机器才是稳定么,呵呵我没那么高的技术,也懒的去修改源代码!本人懒。
apt-get install apache2 php5 php5-cli php5-mysql mysql-server  libmysqlclient15-dev
大陆用户推荐用C99的源,我是在美国服务器上装,速度惊人,呵呵不用修改源`
2。安装 bind9.5+mysql-bind在这里我穿插一下我的郁闷的问题,我在bind官方网站在windows XP 下载的bind9 下载下来传到服务器上的,tar 解压的时候总是提示文件不全,不论下载多少次都是,所有bind9.5我是wget下载的。不知道你们安装的时候会怎么样。
  tar zxvf bind9.5
 tar zxvf mysql-bind
cp mysql-bind/mysqldb.c bind9.5/bin/named
cp mysql-bind/mysqldb.h bind9.5/bin/named/include/named
cd bind9.5
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'
DBDRIVER_LIBS = -L'/usr/lib/mysql' -lmysqlclient -lz -lcrypt -lnsl -lm -lc -lnss_files -lnss_dns -lresolv -lc -lnss_files -lnss_dns -lresolv
我的是 ubuntu系统 mysql 开发包路径可能不一样~大家指定自己的路径就可以了不然会报错改完后wq保存退出。
然后修改 bin/named/main.c
查找 xxdb_init();
在 注释文件 xxdb_init();
下添加 mysqldb_init();
然后查找查找 xxdb_clear();
再下面添加mysqldb_clear();
修改完后wq 保存退出,然后开始编译安装
./configure --prefix=/usr/local/named --enable-threads #--enable-threads 开启多线程处理能力
make
make install
安装完后,需要手工建立配置文件的。不像 rpm 和deb包一样会有默认文件的。
cd /usr/local/named/etc
生成 rndc 控制命令的key文件
../sbin/rndc-confgen > etc/rndc.conf
#### 从 rndc.conf 文件中提取 named.conf 用的 key 生成 named.conf 文件
cd /usr/local/named/etc
tail -10 rndc.conf | head -9 | sed 's/# //g' > named.conf
#### 此时,named.conf 内容为:
key "rndc-key" {
algorithm hmac-md5;
secret "O0SuB34RK+E3r+m5Fbh2eA==";
};
controls {
inet 127.0.0.1 port 953
  allow { 127.0.0.1; } keys { "rndc-key"; };
};
#### dig 命令直接生成 named.root 文件,这个文件是很标准的东东,
#### 有了它,本地 dns 不能解的就上总部去问
cd /usr/local/named/etc
dig > named.root
配置named.conf
key "rndc-key" {
        algorithm hmac-md5;
        secret "SNMYFWAAVeCB/udiejFdGw==";
};
controls {
        inet 127.0.0.1 port 953
                allow { 127.0.0.1; } keys { "rndc-key"; };
};
include "named.conf.options";
zone "." {
type hint;
file "/usr/local/named/etc/named.root";
};
zone "localhost" {
        type master;
        file "/usr/local/named/etc/db.local";
};
zone "127.in-addr.arpa" {
        type master;
        file "/usr/local/named/etc/db.127";
};
zone "0.in-addr.arpa" {
        type master;
        file "/usr/local/named/etc/db.0";
};
zone "255.in-addr.arpa" {
        type master;
        file "/usr/local/named/etc/db.255";
};

zone "xueku.org.cn" IN {
  type master;
  database "mysqldb edgora ludy localhost root 123";
};
这些 db.local db.127 db.0 db.255 网上很多配置,其实也没什么用。
#### 上述内容中配置自己的
#### 数据库名(edgora),表名(ludy),MYSQL主机(localhost),
#### MYSQL用户(root),MYSQL密码(123)
#### 当然,前提条件是在 mysql 建库。
这里我介绍一下,bind9.4以后新加的功能allow-query-cache。
感觉上allow-query-cache在未设置allow-recursion的情况下可以取代allow-recursion的功能,有继承关系。如果想禁止用户的递归查询请求,还需要将 allow-query-cache 选项关闭,否则用户仍然可能在 cache 中查到数据
我在这里 配置的 named.conf.options 内容如下
options {
        directory "/usr/local/named/etc";
        allow-query { any; };
        allow-recursion { any; };
        allow-query-cache {any;};
        datasize 2098;
};
我这样设置是非常不安全的,因为任何人都可以利用你的服务器来做DNS这样知道的多了,会造成严重的负载。所以大家可以建立acl规则来指定用户来使用你的DNS服务器。因为我测试就不这么做了,给大家一个例子。
例子:
acl "trusted"{
192.168.6.0/24;
options {
        directory "/usr/local/named/etc";
        allow-query { any; };
        allow-recursion { trusted; };
        allow-query-cache {trusted;};
        datasize 2098;
};
4.安装phpmyadmin
tar zxvf phpmyadmin.gz
mv phpmyadmin /var/www
我mysql有点不信任自己记得代码,所有用phpmyadmin比较安全,也简单。
找到 /libraries/config.default.php文件(config.default.php复制到phpmyadmin目录下,然后更名为config.inc.php),该文件有如下项目(2-8)须自行配置,windows用写字板(不要用记事本,这是UTF8编码)进行编辑,在 linux下直接用vim编辑.
查找 $cfg['PmaAbsoluteUri'] 修改为你将上传到空间的phpMyAdmin的网址
如:$cfg['PmaAbsoluteUri'] = 'http://123.123.123.123/phpmyadmin
查找 $cfg['Servers'][$i]['host'] = 'localhost';(通常用默认,也有例外,可以不用修改)
查找 $cfg['Servers'][$i]['auth_type'] = 'config';
在自己的机子里调试用config;如果在网络上的空间用cookie,这里我们既然在前面已经添加了网址,就修改成cookie ,这里建议使用cookie.
查找 $cfg['Servers'][$i]['user'] = 'root'; // MySQL user(mysql用户名,自己机里用root;)
查找 $cfg['Servers'][$i]['pass word'] = ''; // MySQL password (mysql用户的密码,自己的服务器一般都是mysql用户root的密码)
查找 $cfg['Servers'][$i]['only_db'] = ''; // If set to a db-name, only(你只有一个数据就设置一下;如果你在本机或想架设服务器,那么建议留空) .查找 $cfg['DefaultLang'] = 'zh'; (这里是选择语言,zh代表简体中文的意思,这里不知道填gbk对否)
设置完毕后保存
如果出现“配置文件现在需要绝密的短语密码(blowfish_secret)”那么请在$cfg['blowfish_secret'] = ' ';的等号里面设置你网站的cookie,例如:$cfg['blowfish_secret'] = '任意字符';这是因为你的“$cfg['Servers'][$i]['auth_type'] = 'cookie'的原因。
哎我的phpmyadmin麻烦了点,高手见量`
相信大家如何建立数据库就不用说了吧,输入root 密码 123
进去后设置一下mysql的安全吧。然后建立一个数据库
好了`然后插入表了,因为时间问题我就不多说了。直接插代码了,我的表名ludy
CREATE TABLE ludy (
        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 ('xueku.org.cn', 259200, 'SOA', 'xueku.org.cn.  root.xueku.org.cn  200505101 28800 7200 86400 28800');
INSERT INTO ludy VALUES ('xueku.org.cn', 259200, 'NS', 'ns1.edgora.cn.');
INSERT INTO ludy VALUES ('xueku.org.cn', 259200, 'MX', '10 mail.xueku.org.cn.');
INSERT INTO ludy VALUES ('ns1.edgora.cn', 259200, 'A', '123.123.123.123');
INSERT INTO ludy VALUES ('xueku.org.cn', 259200, 'A', '123.123.123.123');
INSERT INTO ludy VALUES ('www.xueku.org.cn', 259200, 'A', '123.123.123.123');
5.启动 bind测试它是否正常工作
root@edgora:/usr/local/named/etc# ../sbin/named -g
04-Jul-2008 02:58:03.821 starting BIND 9.5.0 -g
04-Jul-2008 02:58:03.822 found 1 CPU, using 1 worker thread
04-Jul-2008 02:58:03.827 loading configuration from '/usr/local/named/etc/named.conf'
04-Jul-2008 02:58:03.828 listening on IPv6 interfaces, port 53
04-Jul-2008 02:58:03.831 binding TCP socket: address in use
04-Jul-2008 02:58:03.832 listening on IPv4 interface lo, 127.0.0.1#53
04-Jul-2008 02:58:03.856 binding TCP socket: address in use
04-Jul-2008 02:58:03.856 listening on IPv4 interface eth0, 75.125.197.202#53
04-Jul-2008 02:58:03.906 binding TCP socket: address in use
04-Jul-2008 02:58:03.963 default max-cache-size (33554432) applies
04-Jul-2008 02:58:03.990 automatic empty zone: 254.169.IN-ADDR.ARPA
04-Jul-2008 02:58:03.991 automatic empty zone: 2.0.192.IN-ADDR.ARPA
04-Jul-2008 02:58:03.991 automatic empty zone: 255.255.255.255.IN-ADDR.ARPA
04-Jul-2008 02:58:03.991 automatic empty zone: 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA
04-Jul-2008 02:58:03.991 automatic empty zone: 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA
04-Jul-2008 02:58:03.991 automatic empty zone: D.F.IP6.ARPA
04-Jul-2008 02:58:03.991 automatic empty zone: 8.E.F.IP6.ARPA
04-Jul-2008 02:58:03.991 automatic empty zone: 9.E.F.IP6.ARPA
04-Jul-2008 02:58:03.991 automatic empty zone: A.E.F.IP6.ARPA
04-Jul-2008 02:58:03.992 automatic empty zone: B.E.F.IP6.ARPA
04-Jul-2008 02:58:04.005 default max-cache-size (33554432) applies: view _bind
04-Jul-2008 02:58:04.025 /usr/local/named/etc/named.conf:7: couldn't add command channel 127.0.0.1#953: address in use
04-Jul-2008 02:58:04.026 ignoring config file logging statement due to -g option
04-Jul-2008 02:58:04.046 zone 0.in-addr.arpa/IN: loaded serial 1
04-Jul-2008 02:58:04.047 zone 127.in-addr.arpa/IN: loaded serial 1
04-Jul-2008 02:58:04.048 zone 255.in-addr.arpa/IN: loaded serial 1
04-Jul-2008 02:58:04.057 zone localhost/IN: loaded serial 1
04-Jul-2008 02:58:04.059 running
好没有错误`嘿嘿``测试吧。把自己的DNS设置成123.123.123.123 打开IE  [url]www.xueku.org.cn[/url]
能打开OK。 host -t ns xueku.org.cn 得到 ns1.edgora.cn好一切正常,现在就等你的bind9与世界各地的DNS同步了,默认的DNS就可以解析你的域名啦。写的有点仓促,呵呵如果有错误谢谢指点。nslookup xueku.org.cn也可以测试的。。
在这里 要谢谢``帮助我的人` 呵呵``让我学到了不少东西。当然要想同步的快点把TTL修改低一点 修改 3600吧呵呵``一小时同步一次。再告诉大家一个好用的测试命令
也是向别人学习的呵呵。dig @203.119.27.1 xueku.org.cn
; <<>> DiG 9.3.5rc2 <<>> @203.119.27.1 xueku.org.cn
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1310
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 2, ADDITIONAL: 0

;; QUESTION SECTION:
;xueku.org.cn.                  IN      A

;; AUTHORITY SECTION:
xueku.org.cn.           21600   IN      NS      ns.edgora.cn.
xueku.org.cn.           21600   IN      NS      ns1.edgora.cn.

;; Query time: 93 msec
;; SERVER: 203.119.27.1#53(203.119.27.1)
;; WHEN: Tue Jul 01 19:41:27 2008
;; MSG SIZE  rcvd: 72
dig @ns1.edgora.cn  [url]www.xueku.org.cn[/url]

; <<>> DiG 9.3.5rc2 <<>> @ns1.edgora.cn  [url]www.xueku.org.cn[/url]
; (1 server found)
;; global options:  printcmd
;; connection timed out; no servers could be reached
因为我的还没有同步所以报错了。


本文转自Deidara 51CTO博客,原文链接:http://blog.51cto.com/deidara/85706,如需转载请自行联系原作者
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
uiu
|
SQL 存储 分布式计算
Hive 快速入门与平台搭建 | 结合Mysql(一)
Hive 快速入门与平台搭建 | 结合Mysql(一)
uiu
409 0
Hive 快速入门与平台搭建 | 结合Mysql(一)
|
canal 关系型数据库 MySQL
基于 Docker 结合 Canal 实现 MySQL 实时增量数据传输
基于 Docker 结合 Canal 实现 MySQL 实时增量数据传输
基于 Docker 结合 Canal 实现 MySQL 实时增量数据传输
|
消息中间件 canal 关系型数据库
Elasticsearch结合MySQL的两种架构模式对比
Elasticsearch结合MySQL的两种架构模式对比
Elasticsearch结合MySQL的两种架构模式对比
|
消息中间件 SQL 资源调度
Flink on zeppelin 结合kafka实时计算pv uv写入mysql
上一篇文章主要介绍了Flink on zeppelin的安装和使用,配置了yarn的模式跑通了一个streaming wordcount的例子,本文主要介绍结合kafka的使用,实时计算一个简单的pv,uv把结果写入到mysql的例子. 添加依赖包 首先需要添加kafka以及mysql的jar包,有两种方式,第一种是直接把jar包添加到Flink的lib下面,如下所示:
|
前端开发 关系型数据库 MySQL
Springboot 最简单的结合MYSQL数据实现EXCEL表格导出及数据导入
Springboot 最简单的结合MYSQL数据实现EXCEL表格导出及数据导入
519 0
Springboot 最简单的结合MYSQL数据实现EXCEL表格导出及数据导入
|
关系型数据库 MySQL 数据库
排序查询(案例结合)-mysql
排序查询(案例结合)-mysql
|
关系型数据库 MySQL Java
Flink Mysql CDC结合Doris flink connector实现数据实时入库
Flink Mysql CDC结合Doris flink connector实现数据实时入库,Apache doris通过扩展支持通过 Flink 读写 doris 数仓中的数据表。
598 0
Flink Mysql CDC结合Doris flink connector实现数据实时入库
|
关系型数据库 MySQL Java
Flink Mysql CDC结合Doris flink connector实现数据实时入库
Apache doris通过扩展支持通过 Flink 读写 doris 数仓中的数据表,目前 doris 支持 Flink 1.11.x ,1.12.x,1.13.x,Scala版本:2.12.x目前Flink doris connector目前控制入库通过两个参数:1. sink.batch.size :每多少条写入一次,默认100条2. sink.batch.interval :每个多少秒写入一下,默认1秒这两参数同时起作用,那个条件先到就触发写doris表操作。
670 0
|
消息中间件 NoSQL 前端开发
实时统计每天pv,uv的sparkStreaming结合redis结果存入mysql供前端展示
最近有个需求,实时统计pv,uv,结果按照date,hour,pv,uv来展示,按天统计,第二天重新统计,当然了实际还需要按照类型字段分类统计pv,uv,比如按照date,hour,pv,uv,type来展示。这里介绍最基本的pv,uv的展示。
313 0
实时统计每天pv,uv的sparkStreaming结合redis结果存入mysql供前端展示
|
SQL 安全 关系型数据库
【Shiro】Shiro从小白到大神(二)-Subject认证结合MySQL
【Shiro】Shiro从小白到大神(二)-Subject认证结合MySQL
152 0