枕上诗书闲处好,门前风景雨来佳。这篇文章主要讲述Linux 学习 11相关的知识,希望能为你提供帮助。
1、简述DNS服务器原理,并搭建主-辅服务器
工作原理:
如客户端想要访问www.a.com
1、客户端主机先查询本地dns缓存和hosts文件中是否有www.a.com域名的记录,如果有直接使用,如果没有则向定义的dns服务器去请求(/etc/resolv.conf)
2、dns服务器收到主机请求会查询dns服务器本地是否有www.a.com域名的解析记录,如果有直接返回给客户端,如果没有,dns服务器直接向根服务器请求查询
3、根服务器收到dns服务器的查询请求发现是查询.com域的信息,然后根服务器则返回.com域的服务器ip给到dns服务器
4、dns服务器收到.com的服务器IP,再次向.com的服务器请求a.com的域名服务器ip
5、dns服务器收到.com返回a.com域名服务器IP,直接再次请求a.com域名服务器,查询www的解析记录
6、dns服务器查询到www.a.com的解析记录后则直接返回给客户端并缓存此记录
7、客户端主机则拿到www.a.com的ip就直接访问到目标主机了,并缓存了此解析记录
创建主DNS服务器:
软件包安装:
yum -y install bind bind-libs bind-utils
配置文件/etc/named.conf ,注释如下两行:
//listen-on port 53 { 127.0.0.1; };
//allow-query{ localhost; };
创建cat.local域区域记录:
vim/var/named/cat.local.zone//cat.local.zone是自定义的区域路径,注意该文件权限
$TTL 1D// TTL 设置变量,下面可以复用
@IN SOAns1 admin.cat.local. (// ns1表示dns服务器后面admin 是邮箱,只是@要改成点(.)
1;
serial//数据库版本号,辅助DNS通过它来更新
1D;
refresh// 更新同步时间
1H;
retry//同步失败后再更新时间
1W;
expire//从服务器失效时间
3H );
minimum//不存在记录的缓存时间
NSns1//ns记录 显示哪个是主哪个是从服务器
ns1 INA192.168.30.18//服务器的A记录wwwINA192.168.30.28
创建配置并指向这个域记录:
vim /etc/named.rfc1912.zones
zone "cat.local" IN {//创建cat.local区域
type master;
//类型为主
file "cat.local.zone";
// 输入刚创建的文件名
};
重启DNS服务器
测试:
文章图片
在此基础上创建辅助DNS服务器:
安装软件:yum install bindbind-libs
主DNS上更新辅助DNS的NS类型地址
文章图片
辅助DNS配置文件:
vim /etc/named.rfc1912.zones
zone "cat.local" IN {//创建cat.local 辅助区域
type slave;
// 角色为辅助
masters {192.168.30.18;
};
// 指定谁是主
file "slaves/cat.local.zone";
// 同步的文件路径,文件会自动生成};
重启DNS服务,cat.local.zone文件会自动同步到/var/named/slaves下
文章图片
2、搭建并实现智能DNS
智能DNS ,简单来说,就是当客户端访问某个网站时,返回的是离客户端距离最近的站点,
搭建智能DNS,需要配置三个部分:
ACL控制,对IP做区域划分
view 控制,将对应的IP映射到对应的数据库文件
区域数据库文件:指定对应的主机记录
实施步骤:
安装软件: yum -y install bindbind-libsbind-utils
配置文件:
vim /etc/named.conf
acl A_area {
192.168.30.0/24;
//创建ACL指定对应区域IP };
acl B_area {
172.16.0.0/24;
};
//listen-on port 53 { 127.0.0.1;
};
//allow-query{ localhost;
};
view A_area {//创建视图,将区域IP 指定到对应的zone上
match-clients {A_area;
};
include "/etc/named.rfc1912.zones.A";
};
view B_area {
match-clients {B_area;
};
include "/etc/named.rfc1912.zones.B";
};
配置区域文件:
vim/etc/named.rfc1912.zones.A
zone "." IN {
type hint;
file "named.ca";
};
zone "cat.local" IN {
type master;
file "cat.local.zone.A";
};
vim/etc/named.rfc1912.zones.B
zone "." IN {
type hint;
file "named.ca";
};
zone "cat.local" IN {
type master;
file "cat.local.zone.B";
};
配置主机记录:
vim /var/named/cat.local.zone.A
$TTL 1D
@IN SOAns1admin.cat.local. (
0;
serial
1D;
refresh
1H;
retry
1W;
expire
3H );
minimum
NSns1
ns1A192.168.30.8wwwA192.168.30.8vim /var/named/cat.local.zone.B
$TTL 1D
@IN SOAns1admin.cat.local. (
0;
serial
1D;
refresh
1H;
retry
1W;
expire
3H );
minimum
NSns1
ns1A172.16.0.30wwwA172.16.0.30
测试:
文章图片
文章图片
3、通过编译、二进制安装mysql5.7多实例
编译安装mysql 5.7:
准备环境:
yum install bison bison-develzlib-devellibcurl-devel\\
libarchive-devel boost-devel\\
gcc gcc-c++ cmake ncurses-devel\\
gnutls-devellibxml2-devellibevent-devel\\
libaio-devel libtirpc-devel
创建mysql用户:
useradd -r -s /sbin/nologinmysql
准备数据目录:
mkdir /app/mysql编译时程序安装路径
mkdir /data/mysql数据库路径
chownmysql.mysql /data/mysql更改用户组
解压程序并编译
tar xfmysql-5.7.34.tar.gz
cdmysql-5.7.34
cmake . \\
-DCMAKE_INSTALL_PREFIX=/app/mysql \\
-DMYSQL_DATADIR=/data/mysql \\
-DSYSCONFDIR=/etc/ \\
-DSYSTEMD_PID_DIR=/app/mysql \\
-DMYSQL_USER=mysql \\
-DWITH_DEBUG=0 \\
-DWITH_INNOBASE_STORAGE_ENGINE=1 \\
-DWITH_SSL=system \\
-DWITH_ZLIB=system \\
-DWITH_LIBWRAP=0 \\
-DDENABLED_LOCAL_INFILE=1 \\
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \\
-DDEFAULT_CHARSET=utf8 \\
-DDEFAULT_COLLATION=utf8_general_ci \\
-DDOWNLOAD_BOOST=1\\在编译过程中如果找不到boost 会自动下载
-DWITH_BOOST=/usr/local/boost/make &
&
make install
文章图片
将mysql的bin目录写入环境变量:
echo \'PATH=/app/mysql/bin:$PATH\' >
/etc/profile.d/mysql.sh
./etc/profile.d/mysql.sh
准备配置文件:这里多实例需要更改默认端口
vim /etc/my.cnf
[mysqld]
port=3307
datadir=/data/mysql
skip_name_resolve=1
socket=/data/mysql/mysql.sock
log-error=/data/mysql/mysql.log
pid-file=/data/mysql/mysql.pid[client]
socket=/data/mysql/mysql.sock
生成数据库文件:自动产生临时的数据登录密码,可在mysql.log中查看
mysqld --initialize --user=mysql
准备启动文件并启动:
cp ./support-files/mysql.server /etc/init.d/mysqld
/etc/init.d/mysqldstart
文章图片
二进制安装5.7:
依赖包安装和用户创建前面已经完成
直接解压mysql 二进制包并创建软链接:
tar xf mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz -C /usr/local
cd /usr/local/
ln -s mysql-xxmysql
chown -R root.rootmysql/
准备配置文件
vim /etc/mysqlcnf/my.cnf由于是多实例,二进制安装的配置路径需要更改
[mysqld]
port=3308
datadir=/data/mysqldata
skip_name_resolve=1
socket=/data/mysqldata/mysql.sock
log-error=/data/mysqldata/mysql.log
pid-file=/data/mysqldata/mysql.pid
[client]
socket=/data/mysqldata/mysql.sock
初始化数据库:
mysqld --defaults- file = /etc/mysqlcnf/my.cnf --initialize --user=mysql
启动数据库:
mysqld --defaults-file=/etc/mysqlcnf/my.cnf --user=mysql &
查看端口:
文章图片
4、整理MySQL数据类型
整数型:
tinyint占1个字节 (-128 -127)
smallint占2个字节 (-32768-32768)
mediumint 占3个字节(-8388608 - 8388607)
int占4个字节(-2147483648-2147483647)
bigint占8个字节(+-9.22*10的18次方)
以上如果加上修饰符unsigned后,则最大值翻倍,如tinyint unsigned表示0-255
浮点型:
float(m,d)单精度浮点型8位精度 , m是总的个数,d表示小数位
double(m,d)双精度浮点型16位精度,m是总的个数,d表示小数位
如定义字段为float(6,3)则一个数123.45678表示为123.457
定点数:
decimal存放的是精确值,存为十进制,可用于财务上的数字定义
字符串:
char(n)固定长度最多255个字符,不是字节
varchar(n)可变长度 最多65535个字符
tinytext可变长度最多255个字符
text可变长度 最多65535个字符
mediumtext可变长度,最多2的24次方-1个字符
longtext可变长度最多 2 的32次方-1个字符
BINARY(M)固定长度 可存放二进制或字符
VARBINARY(M)可变长度 可存放二进制或字符
日期时间类型:
date日期‘2021-12-2’
time时间‘11:22:33’
datetime日期时间‘2021-12-2 11:22:33’
timestamp自动存储记录修改时间随着其它字段修改自动刷新
【Linux 学习 11】YEAR(2),YEAR(4) : 年份
推荐阅读
- 第一周
- Linux之fgrep命令
- Openshift与Kubernetes的区别
- oeasy教您玩转vim - 32 - # 函数跳转
- 如何有效避免漏测()
- openSUSE-Leap-15.1配置网络和防火墙
- hp笔记本怎样进bios,本文教您迅速进入bios系统
- u盘提示写保护怎样修好,本文教您超极容易修好
- 怎样制作u盘打开盘,本文教您最新制作u盘打开盘