標籤:des blog http io ar os sp for strong
最近打算將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 protected]][email protected][/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
bind支援mysql