mysql utf8m64

阅读: 评论:0

mysql utf8m64

mysql utf8m64

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

* yum -y install mysql mysql-server

2.再安装一些依赖的包yum -y install openssl openssl-devel libss-dev gcc gcc-c++ mysql-devel4.下载mysql-bind 补丁源码5.解压bind和mysql-bind源码压缩文件tar zxvf bind-9.10.

tar zxvf 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修改mysqldb.c中的#include 为 #include 10.安装bind./configure --prefix=/usr/local/bind --enable-threads  # 指定安装目录和开启多线程的处理能力

make

make install11.配置bindcd /usr/local/bind-9.10/etc

/usr/local/bind/sbin/rndc-confgen -r /dev/urandom&f

f|tail |head -9 |sed "s/^#//g"&f   # 生成配置文件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', 259200, 'SOA', 'test.  st  200505101 28800 7200 86400 28800');

INSERT INTO dnsrecord VALUES ('test', 259200, 'NS', &#st.');

INSERT INTO dnsrecord VALUES (&#st', 259200, 'A', '192.168.2.2');

INSERT INTO dnsrecord VALUES (&#st', 259200, 'A', '192.168.2.1');##########################好使###############################

DROP TABLE IF EXISTS 10_outside;

CREATE TABLE 10_outside (

name varchar(255) default NULL,

ttl int(11) default NULL,

rdtype varchar(255) default NULL,

rdata varchar(255) default NULL

);

--

-- Dumping data for table `10_outside`

--

LOCK TABLES 10_outside WRITE;

INSERT INTO 10_outside VALUES ('25.71.210.10.in-addr.arpa',3600,'PTR',&#st.mydomain.');

INSERT INTO 10_outside VALUES ('10.in-addr.arpa',3600,'SOA',&#domain. domain. 20070319 1800 600 604800 600');

INSERT INTO 10_outside VALUES ('10.in-addr.arpa',3600,'NS',&#st.mydomain.');

INSERT INTO 10_outside VALUES ('10.in-addr.arpa',3600,'NS',&#st.mydomain.');

INSERT INTO 10_outside VALUES ('10.in-addr.arpa',3600,'NS',&#st.mydomain.');

INSERT INTO 10_outside VALUES ('27.71.210.10.in-addr.arpa',3600,'PTR',&#st.mydomain.');

UNLOCK TABLES;

--

-- Table structure for table `test_mydomain_com_cn_outside`

--

DROP TABLE IF EXISTS test_mydomain_com_cn_outside;

CREATE TABLE test_mydomain_com_cn_outside (

name varchar(255) default NULL,

ttl int(11) default NULL,

rdtype varchar(255) default NULL,

rdata varchar(255) default NULL

);

--

-- Dumping data for table `test_mydomain_com_cn_outside`

--

LOCK TABLES test_mydomain_com_cn_outside WRITE;

INSERT INTO test_mydomain_com_cn_outside VALUES (&#domain',3600,'SOA',&#domain. domain. 20070319 1800 600 604800 600');

INSERT INTO test_mydomain_com_cn_outside VALUES (&#domain',3600,'NS',&#st.mydomain.');

INSERT INTO test_mydomain_com_cn_outside VALUES (&#domain',3600,'NS',&#st.mydomain.');

INSERT INTO test_mydomain_com_cn_outside VALUES (&#domain',3600,'NS',&#st.mydomain.');

INSERT INTO test_mydomain_com_cn_outside VALUES (&#st.mydomain',3600,'A','10.210.71.25');

INSERT INTO test_mydomain_com_cn_outside VALUES (&#st.mydomain',3600,'A','10.210.71.27');

INSERT INTO test_mydomain_com_cn_outside VALUES (&#st.mydomain',3600,'A','10.210.132.80');

INSERT INTO test_mydomain_com_cn_outside VALUES (&#st.mydomain',3600,'A','10.218.26.191');

INSERT INTO test_mydomain_com_cn_outside VALUES (&#st.mydomain',3600,'A','10.218.26.192');

INSERT INTO test_mydomain_com_cn_outside VALUES (&#st.mydomain',3600,'A','10.218.26.193');

INSERT INTO test_mydomain_com_cn_outside VALUES (&#st.mydomain',3600,'A','10.218.26.194');

INSERT INTO test_mydomain_com_cn_outside VALUES ('*',3600,'A','10.210.71.1');

INSERT INTO test_mydomain_com_cn_outside VALUES (&#st.mydomain',3600,'CNAME',&#st.mydomain.');

UNLOCK TABLES;

############################################13.继续配置bindvim /usr/local/bind/f

在后面按照以下格式加入

zone "mydomain" {

type master;

notify no;

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

mydomain为要解析的域名

dbname 为数据库名

hostname为数据库服务器地址

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

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

配置完成

在命令行下运行

/usr/local/bind/sbin/named -c /usr/local/bind/f -g

查看没问题后

/usr/local/bind/sbin/named -c /usr/local/bind/f[root@silence etc]# ls

bind.

[root@silence etc]#

$TTL 86400

@ IN domain. w1.mydomain (

2018070110

1H

5M

7D

1D)

IN NS ns1

IN NS ns2

IN MX 10 mx1

IN MX 20 mx2

ns1 IN A 192.168.108.160

ns2 IN A 192.168.108.138

ns3 IN A 192.168.108.166

mx1 IN A 192.168.108.138

w1 IN A 192.168.1.2

w0 IN A 192.168.1.1

www IN A 192.168.108.160

* IN A 192.168.108.166

[root@silence etc]# f

key "rndc-key" {

algorithm hmac-md5;

secret "ZYobWCcSDr2HDCMuojc6gg==";

};

controls {

inet 127.0.0.1 port 953

allow { 127.0.0.1; } keys { "rndc-key"; };

};

options {

listen-on port 53 { 127.0.0.1;172.16.188.123; };

directory "/data/work/bind9.9.3";

allow-query-cache { any; };

allow-query { any; };

dnssec-enable yes;

dnssec-validation yes;

dnssec-lookaside auto;

};

zone "." {

type hint;

file "/data/work/bind9.9.3/";

};

zone "mydomain" {

type forward;

forwarders { 114.114.114.114;8.8.8.8; };

forward first;

};

logging {

channel bind_log {

file "/data/work/bind9.9.3/logs/bind.log" versions 3 size 20m;

severity info;

print-time yes;

print-severity yes;

print-category yes;

};

category default {

bind_log;

};

};

zone &#domain" IN{

type master;

notify no;

database "mysqldb mydomain test_mydomain_com_cn_outside 172.16.188.123 root 111111";

};

zone "16.172.in-addr.arpa" IN{

type master;

notify no;

database "mysqldb mydomain 10_outside 172.16.188.123 root 111111";

};

运行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的配置文件路径

confFile=/usr/local/bind/f

# 判断/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 "

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 "

success

echo

else

echo -n "named "

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

测试[root@silence ~]# st.mydomain

Server: 172.16.188.123

Address: 172.16.188.123#53

Name: domain

Address: 10.210.71.25

[root@silence ~]# /data/work/bind9.9.3/bin/dig -t st.mydomain @172.16.188.123

; <<>> DiG 9.9.3-P1 <<>> -t st.mydomain @172.16.188.123

;; global options: +cmd

;; Got answer:

;; ->>HEADER<

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 3

;; OPT PSEUDOSECTION:

; EDNS: version: 0, flags:; udp: 4096

;; QUESTION SECTION:

;domain. IN A

;; ANSWER SECTION:

;; AUTHORITY SECTION:

;; ADDITIONAL SECTION:

;; Query time: 3 msec

;; SERVER: 172.16.188.123#53(172.16.188.123)

;; WHEN: Wed Nov 25 16:37:23 CST 2020

;; MSG SIZE rcvd: 154

[root@silence ~]# cat /f

# Generated by NetworkManager

nameserver 172.16.188.123

本文发布于:2024-01-29 09:47:19,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170649284414421.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:mysql
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23