centos bind mysql_CentOS6系统bind9 + MySQL配置安装

[bind安装配置]

1.先安装MySQL,直接yum安装

yum -y install mysql mysql-server

2.再安装一些依赖的包

yum -y install openssl openssl-devel libss-dev gcc gcc-c++ mysql-devel

4.下载mysql-bind 补丁源码

5.解压bind和mysql-bind源码压缩文件

tar zxvf bind-9.10.3-P2.tar.gz

tar zxvf mysql-bind.tar.gz

6.将mysql-bind源码目录下的mysqldb.c 和 mysqldb.h拷贝到bind源码目录下的bin/named和bin/named/include/ 目录下

cd mysql-bind

cp -f mysqldb.c mysqldb.h ../bind-9.10.3-P2/bin/named/

cp -f mysqldb.c mysqldb.h ../bind-9.10.3-P2/bin/named/include/

7.修改bind源码目录下bin/named/Makefile.in文件

cd ../bind-9.10.3-P2

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  -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fno-strict-aliasing -fwrapv -fPIC   -DUNIV_LINUX -DUNIV_LINUX

DBDRIVER_LIBS = -rdynamic -L/usr/lib64/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -lssl -lcrypto

DBDRIVER_INCLUDES 的值是通过 mysql_config --cflags 命令获取的

DBDRIVER_LIBS 的值是通过 mysql_config --libs 命令获取的

8.修改bind源码目录下bin/named目录下的main.c文件

vim bin/named/main.c

加入 #include "mysqldb.h"

如下:

#include

#include "mysqldb.h"

#include

#include

#include

然后在注释代码段 /*  xxdb_init(); */ 后加入 mysqldb_init();

在注释代码段 /*  xxdb_clear(); */后加入 mysqldb_clear();

9.修改mysqldb.c中的#include 为 #include

10.安装bind

./configure --prefix=/usr/local/bind --enable-threads  # 指定安装目录和开启多线程的处理能力

make

make install

11.配置bind

cd /usr/local/bind-9.10/etc

/usr/local/bind/sbin/rndc-confgen -r /dev/urandom>rndc.conf

cat rndc.conf|tail |head -9 |sed "s/^#//g">named.conf   # 生成配置文件

12.创建一个数据库

Create database mydomain;

创建一张数据表

CREATE TABLE dnsrecord (

name varchar(255) default NULL,

ttl int(11) default NULL,

rdtype varchar(255) default NULL,

rdata varchar(255) default NULL )TYPE=MyISAM;

插入一些测试数据

INSERT INTO dnsrecord VALUES ('test.net', 259200, 'SOA', 'test.net.  www.test.net  200505101 28800 7200 86400 28800');

INSERT INTO dnsrecord VALUES ('test.net', 259200, 'NS', 'ns1.test.net.');

INSERT INTO dnsrecord VALUES ('ns1.test.net', 259200, 'A', '192.168.2.2');

INSERT INTO dnsrecord VALUES ('www.test.net', 259200, 'A', '192.168.2.1');

13.继续配置bind

vim /usr/local/bind/etc/named.conf

在后面按照以下格式加入

zone "mydomain.com" {

type master;

notify no;

database "mysqldb dbname tablename hostname user password"; };

mydomain.com为要解析的域名

dbname 为数据库名

hostname为数据库服务器地址

user 为可操作前面数据库表的数据库用户名

password 为对应数据库用户名的密码

配置完成

在命令行下运行

/usr/local/bind/sbin/named -c /usr/local/bind/etc/named.conf -g

查看没问题后

/usr/local/bind/sbin/named -c /usr/local/bind/etc/named.conf

运行bind

写入系统服务

vim /etc/init.d/named

####################################################################

#!/bin/bash

#

# description: named daemon  描述信息

# chkconfig: - 25 88    启动和关闭级别

#

# 启动named的pid文件、其实文件路径我们都可以自己指定的

pidFile=/usr/local/bind/var/run/named.pid

# 启动服务时的锁文件、判断一个服务是不是启动是靠这个锁文件的

lockFile=/var/lock/subsys/named

# named的配置文件路径[RHEL5自带BIND9的安装配置这是我发在blogbus(http://zabc.blogbus.com)上的一篇文章,blogbus不给力,时不时就要维护一下,网络访问速度还奇慢,很是担心发在这个博客的文

confFile=/usr/local/bind/etc/named.conf

# 判断/etc/rc.d/init.d/functions路径下的functios是否存在这个文件、存在就sources进来

[ -r /etc/rc.d/init.d/functions ] && . /etc/rc.d/init.d/functions

# 定义启动方法

start() {

# 判断锁文件是否存在、如果存在就说服务已经启动并退出

if [ -e $lockFile ]; then

echo "named is already running..."

exit 0

fi

# 打印服务已经启动的信息

echo -n "Starting named:"

# 调用functions中的daemon方法、并用--pidfile指定pid文件在什么地方、还指定用户和配置文件、我们本来是直接启用named的、现在利用daemon这个函数来启用这个服务、他会获得很多额外的属性、如果成功了会帮我们打印什么[ OK ]的、还可以做判断

daemon --pidfile "$pidFile" /usr/local/bind/sbin/named -c "$confFile"

RETVAL=$?

echo

# 判断上面的命令是否执行成功、说明启动成功

if [ $RETVAL -eq 0 ]; then

# 如果判断成功、就创建锁文件

touch $lockFile

return $RETVAL

else

# 否则、就是失败了、那就删除锁文件和pid文件

rm -f $lockFile $pidFile

return 1

fi

}

# 定义停止方法

stop() {

# 如果锁文件不存在

if [ ! -e $lockFile ]; then

# 说明服务还没有启动

echo "named is stopped."

fi

echo -n "Stopping named:"

killproc named

RETVAL=$?

echo

# 判断以上的命令是否执行停止成功、如果成功

if [ $RETVAL -eq 0 ];then

# 删除锁文件和pid文件

rm -f $lockFile $pidFile

return 0

else

# 否则打印说没能正常停止

echo "Cannot stop named."

# 调用functions中的函数、会打印失败

failure

return 1

fi

}

# 定义重启服务

restart() {

# 调用停止方法

stop

# 睡眠2秒

sleep 2

# 调用启动方法

start

}

# 定义重新加载服务方法

reload() {

echo -n "Reloading named: "

# killprco HUP信号、named进程的信号

killproc named -HUP

RETVAL=$?

echo

return $RETVAL

}

# 定义服务状态

status() {

if pidof named &> /dev/null; then

echo -n "named is running..."

success

echo

else

echo -n "named is stopped..."

success

echo

fi

}

# 定义错误提示信息

usage() {

echo "Usage: named {start|stop|restart|status|reload}"

}

case $1 in

start)

start ;;

stop)

stop ;;

restart)

restart ;;

status)

status ;;

reload)

reload ;;

*)

usage

exit 4 ;;

esac

####################################################################################

[环境:salt_master:192.168.100.228salt_client1:192.168.100.245master client 版本一致[root@salt_server base]# salt --versions-report       ..]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值