zoukankan      html  css  js  c++  java
  • bind支持mysql

    最近打算将bind的记录信息存入到数据库中去,网上找了下,原来早有老外写好了mysql-bind的补丁,重新编译bind即可实现bind支持mysql存储。(
    http://mysql-bind.sourceforge.net/
    )按照官方的做法是行不通的,有个小地方要修改下,下文中会提到。
    环境centos5.2
    yum install mysql*
    装完mysql。
    下载mysql-bind补丁,google下就找到了。
    下载bind源码,官方网站有的下
    https://www.isc.org/
    解压完上述两个软件后,开始安装配置。
    cp  mysql-bind/mysqldb.c bind9-9.5.1.dfsg.P2/bin/named/
    cp mysql-bind/mysqldb.h bind9-9.5.1.dfsg.P2/bin/named/include/
    注:bind9-9.5.1.dfsg.P2为bind的版本号,bind9.4以上都支持。
    mysql_config –cflags
    结果:-I/usr/include/mysql -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fno-strict-aliasing -fwrapv

    mysql_config –libs 
    结果:-L/usr/lib/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -L/usr/lib -lssl -lcrypto
    # vi bind9-9.5.1.dfsg.P2/bin/named/Makefile.in
    Line 29: DBDRIVER_OBJS = 
    [email=mysqldb.@O]mysqldb.@O[/email]

    Line 30: DBDRIVER_SRCS = mysqldb.c 
    Line 31: DBDRIVER_INCLUDES = -I/usr/include/mysql 
    Line 32: DBDRIVER_LIBS = -L/usr/lib/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -L/usr/lib -lssl -lcrypto

    # vi bind9-9.5.1.dfsg.P2/bin/named/main.c 
    Line 76: #include "mysqldb.h" 
    Line 729: mysqldb_init(); (提示:xxdb_init()字样的下面)
    Line 756: mysqldb_clear(); (提示:xxdb_clear()字样的下面)
    上述步骤完全可以参照官网的操作步骤照做。
    下面这步很关键,不做修改的话,会导致编译失败。(搞了三天才搞定的问题)
    change line 41 of mysqldb.c from #include  to #include "include/mysqldb.h"(一个新加坡的朋友的blog上看到的,版权期间转载为E文,不翻译了



    自此配置前的工作完成
    ./configure --prefix=/usr/local/named --enable-threads --disable-openssl-version-check
    make&&make install顺利完成。
    将bind的记录存入mysql有两点好处,一来省去了主从更新的麻烦配置,直接将主dns和从dns的mysql进行主从复制即可;二点是修改记录后不需要重新加载,同时便于写php管理界面。



    本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/70648/showart_1998507.html

  • 相关阅读:
    完成端口CreateIoCompletionPort编写高性能的网络模型程序
    offsetof的使用
    __attribute__
    nn_slow和nn_fast
    完成端口(Completion Port)详解(转)
    等待
    win8.1磁盘使用率100解决方法
    ubuntu 14.04 修改PS1提示符
    ubuntu14.04 开启root登陆
    Linux下彻底卸载LibreOffice方法
  • 原文地址:https://www.cnblogs.com/L-H-R-X-hehe/p/4084403.html
Copyright © 2011-2022 走看看