mysql域名配置_bind+mysql域名解析的简单配置

2023-11-19

虽然不是干运维的,但在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 

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

./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

原文:http://4709096.blog.51cto.com/4699096/1599424

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mysql域名配置_bind+mysql域名解析的简单配置 的相关文章

  • Ansible-playbook roles安装lnmp(学习笔记三十二)

    http blog 51cto com dl528888 1440775
  • Matlab 二维图转三维图详解

    Matlab 二维图转三维图详解 Matlab 是一款常用的数学软件 其可视化效果也非常出色 在 Matlab 中 我们可以通过简单的代码将二维图转换成三维图 在本文中 我们将为大家介绍如何使用 Matlab 将二维图转换成三维图 一 Ma
  • 小森生活一直显示服务器连接异常,小森生活进不去怎么解决?无法进入游戏问题原因与解决办法[多图]...

    小森生活进不去怎么解决 最近许多玩家反应 在登录小森生活时无法正常进入游戏 有的崩溃 有的闪退 有的直接系统提示无法进入 盒子小编来告诉大家解决办法 小森生活进不去解决攻略 一 检查小森生活安装包 1 小森生活公测用的都是最新版本 内测的老
  • vue中如何在外部调用methods的方法

    1 首先定义一个公共的vue组件 var eventHub new Vue 2 在事件当前的组件中 在created中 用 on向公共的组件eventHub传递 translate是自定义的 getCardNum data 是要在外部调用的
  • elasticsearch去重计数(distinct)

    如果需要针对ES索引统计某个字段上出现的不同值的个数时 可以使用cardinality聚合查询完成 GET urlAttributes search search type count aggs
  • 亚利桑那州立大学周纵苇:研习 U-Net ——现有的分割网络创新

    雷锋网AI研习社按 经典的 Encoder Decoder 结构在目标分割问题中展现出了举足轻重的作用 然而这样一个相对固定的框架使得模型在感受野大小和边界分割精度两方面很难达到兼顾 本次公开课 讲者以 U Net 为案例分析 总结现有的分
  • Python面试50题!面试巩固必看!

    题目001 在Python中如何实现单例模式 点评 单例模式是指让一个类只能创建出唯一的实例 这个题目在面试中出现的频率极高 因为它考察的不仅仅是单例模式 更是对Python语言到底掌握到何种程度 建议大家用装饰器和元类这两种方式来实现单例
  • Jenkins+RobotFramework 失败用例重执行方案

    背景 接口测试用例运行在Jenkins节点上 在某些情况下 比如网络波动等原因 会导致用例运行失败 此时会触发邮件和钉钉预警 通知给到责任人 按照现有策略 当本次构建失败时 会立马触发第二次构建活动 若第二次构建仍然失败 则会再次触发预警信
  • 编译原理_计算器_flex、bison实现(详细辅助理解)

    编译原理 计算器 flex bison实现 详细辅助理解 个人博客 https www yuque com ngp blog tuanh6 https www yuque com ngp blog tuanh6 P S 这篇文章只能助你理解
  • python在财务分析中的应用,用python做财务数据分析

    大家好 本文将围绕python在财务分析中的应用展开说明 用python做财务数据分析是一个很多人都想弄明白的事情 想搞清楚python与财务数据分析需要先了解以下几个事情 1 说明 Python 处理业财数据的应用场景 并写出相应代码 可
  • VS附加进程调试

    什么是附加进程调试 附加进程调试就是将当前的代码工程附加到一个电脑程序进程中进行调试运行 从而达到调试定位问题的目的 附加进程调试的场景 1 软件运行崩溃 无dump或者dump看不出关键信息 2 当前代码工程编译的库不作为启动项 而是作为
  • SpringBoot+MybatisPlus+Druid极速搭建项目原型

    前言 听说你又有新需求了 什么 又是对某些表的增删改查 什么 还要从数据库一直写到dao层 还要配置mapper xml文件 完事儿之后还要写service层 controller层 什么 遇到条件查询还要写dao层和xml文件中的sql语
  • vscode 如何运行pip_VS Code写Python的一些小技巧

    本文基于 VS Code 1 36 1 为什么要用 VS Code 用 PyCharm 不好吗 VS Code 是开源免费的 PyCharm 是收费的 VS Code 除了 Python 还可以写其他语言 PyCharm 不行 VS Cod
  • 代码迁移_三种类型的代码迁移

    代码迁移 随着代码变老 通常有必要对其进行现代化 有以下动机 我们找到了一种更好的方法 我们需要出于支持 许可或仅出于最佳实践的原因而更新核心库 技术 我们需要在更现代的基础架构上运行该软件 简而言之 几年前编写的软件很少能完美地在我们现有
  • 自变化折线图(两周数据)

  • 小饼干问题 find寻找字符串 substr截取字符串

    所有人的回复都由大写字母 小写字母与 组成 占一行 MJJ认为只要其中包含了连续的10个小写字母 zailaiyihe 就意味着这个人想要再来一盒 题目描述 现在MJJ准备给每一个想要 再来一盒 的人买一盒小饼干 他想知道总共需要买几盒小饼
  • 【多线程例题】顺序打印abc线程

    顺序打印 进阶版 方法一 三个线程竞争同一个锁 通过count判断是否打印 方法二 三个线程同时start 分别上锁 从a开始 打印后唤醒b 三个线程分别打印A B C 方法一 通过count计数打印 三个线程上同样的锁 打印一个 召唤所有
  • msi afterburner怎么调节风扇转速教程

    msi afterburner是集超频 信息检测和参数调节等诸多功能为一体的显卡调节控制软件 要怎么使用msi afterburner调节风扇转速呢 很多小伙伴都不清楚怎么设置吧 下面就来看看详细操作 1 根据Afterburner软件的检
  • java String 转utf-8编码

    Get XML String of utf 8 return XML Formed string public static String getUTF8XMLString String xml A StringBuffer Object

随机推荐

  • Docker学习笔记(四)-docker中的网络与存储

    前言 要了解docker的网络和存储 首先需要知道docker的资源隔离机制 namespace 让某个特定的全局系统资源通过抽象方法使namespace 中的进程看起来拥有它们自己的隔离的全局系统资源实例 The purpose of e
  • 白盒测试怎么做?

    目录 前言 一 什么是白盒测试 二 白盒测试的分类 三 白盒测试的设计方法 四 白盒测试静态方法 五 白盒测试动态方法 六 白盒测试的特点 七 总结 前言 在企业内部 软件测试工程师基本处于 双高 地位 即地位高 待遇高 可以说他们的职业前
  • mysql yum的时候报错处理方法

    报错内容 警告 var cache yum x86 64 7 mysql57 community packages mysql community server 5 7 37 1 el7 x86 64 rpm 头V4 RSA SHA256
  • 键盘的hid描述符例子

    譬如有如下的Report Descriptor 譬如有如下的Report Descriptor C C code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
  • 【无标题】乌邦图基础

    1 gt ubuntu的操作 图形界面 当我们ubuntu开启时 会自动进入桌面 桌面拥有很多图标 可以直接通过鼠标点击来完成操作 只适用于不走开发型的纯小白 成本很高 字符界面 没有其他任何的图案和标志 只有黑漆漆的对话框 和冰冷的字眼
  • 基于深度学习实现实时视频目标检测

    前言 实时视频目标检测是计算机视觉领域的研究热点之一 其应用场景包括智能监控 自动驾驶 机器人视觉等多个领域 深度学习技术的快速发展使得实时视频目标检测变得更加可行和准确 本文提出一种基于深度学习实现的实时视频目标检测系统 使用Python
  • 服务器运行python代码报错:intall python Extension

    当我安装时候又报错 WARNING Retrying Retry total 4 connect None read None redirect None status None after connection broken by New
  • 学生管理系统(C语言)

    说明 本程序的基本功能由单链表实现 满足基本的增删改查等功能 包括对文件的读写 由于测试数据较少 项目的鲁棒性可能不是很好 基本功能 退出 输入成绩 计算每名学生加权平均成绩 计算每门课程平均分 按分数降序排列 按学号升序排序 按姓名在字典
  • 如何通过手机拍照生成三维模型

    使用过易模的用户都知道 易模是通过手机扫描拍摄来进行建模的 而手机拍照建模是除扫描拍摄建模方式外迭代升级的一种全新的建模方式 使用手机拍照来进行建模 我们只需要按照要求拍摄并且上传所需建模物体的照片 系统就会自动生成我们所拍摄的物体模型 目
  • Jenkins免密登录gitlab拉取代码

    折腾了一下午 终于弄好了 网上很多博客写的都不清楚 所以记录一下 环境说明 服务器 说明 192 168 199 1 Jenkins 192 168 199 2 gitlab 操作步骤 1 生成公匙 在jenkins服务器执行 ssh ke
  • 2022年华中杯A题(暂时做完第一小问,附完整Python源码)

    目的 虽然比赛时间过去了 但还是可以拿来练一练优化问题的解决 加强自己对于优化算法的巩固 文章目录 目录 目的 前言 一 题目 二 思路 1 第一小题 分批算法 三 程序 1 计算相似度的函数 2 分批算法主要部分 初始化 1 首先生成想要
  • leetcode刷题之字符串处理

    3 Longest Substring Without Repeating Characters Given a string find the length of the longest substring without repeati
  • java common-lang,Maven包错误:org.apache.commons-lang不存在(Java)

    I m using MyEclipse to develop a really simple Java Struts project Everything was working fine until I wanted to use the
  • 面试常考手写代码之--二叉树层次遍历(BFS)

    struct BTNode s int value BTNode s pLeft BTNode s pRight BTNode void BFS BTNode pRoot if pRoot NULL return std deque
  • Python并发编程【(一)理论】:多线程thread、多进程Process、协程Coroutine(async await)

    Python对并发编程的支持 多线程 threading 利用CPU和IO可以同时执行的原理 让CPU不会干巴巴等待IO完成 多进程 multiprocessing 利用多核CPU的能力 真正的并行执行任务 异步IO asyncio 在单线
  • RuntimeError: Error(s) in loading state_dict for ..:Missing key(s) in state_dict: …Unexpected key...

    原因 预训练权重层数的键值与新构建的模型中的权重层数名称不吻合 Checkpoint里面的模型是在双卡上训练的 保存的key前面都多一个module 解决 model torch nn DataParallel model device i
  • 学编程需要的电脑配置

    Java语言 普通PC机可以参考下方的这个配置哦 操作系统 Win10 或 Mac 优先Win10 内存 推荐16G及以上 8G也OK 肯定是越大越好 CPU Intel i5及以上 AMD谨慎考虑 硬盘 512G及以上 含固态硬盘优先 品
  • Exception has occurred: TypeError func must be a callable or a textual reference to one

    这是python定时器apschedurler的scheduler add job iotmain cron hour 7 minute 00 语句里面 调用的方法iotmain 不能带 改写为 scheduler add job iotm
  • rancher使用说明

    一 登录rancher rancher 内网地址 https 10 1 119 12 9443 login 用户名 admin 密码 admin 进入默认项目的工作负载页面 二 部署服务 部署服务 进入按钮 部署服务 部署页面 2 1 各部
  • mysql域名配置_bind+mysql域名解析的简单配置

    虽然不是干运维的 但在IT江湖打酱油也难免受到高人的影响 所以在很早就听说bind可以和数据结合使用 一直都没有时间去研究 今天恰好一个同事问到bind安装的问题 就顺便研究了一下 下面将我的操作过程共享个各位 期间查找了不少网络上的资料