203-iSCSI技术应用-数据库服务基础-管理表数据

前提准备:

1.虚拟机server:划分新的分区,一个5G的主分区
[root@server0 ~]# fdisk /dev/vdb
[root@server0 ~]# lsblk
2.两台虚拟机均设置防火墙默认区域(允许所有)
]# firewall-cmd --set-default-zone=trusted
]# firewall-cmd --set-default-zone=trusted

##################################################

iSCSI网络磁盘

iSCSI磁盘的工作模式

• Internet SCSI,网际SCSI接口(默认端口:3260)
– 一种基于C/S架构的虚拟磁盘技术
– 服务器提供磁盘空间,客户机连接并当成本地磁盘使用

冰箱 -----》纸制的包装 ------》木质的包装

• backstore,后端存储( 冰箱 /dev/vdb1)
– 对应到服务端提供实际存储空间的设备,需要起一个管理名称
• target,磁盘组( 木质的包装 )
– 是客户端的访问目标,作为一个框架,由多个lun组成
• lun,逻辑单元 (动作 将 冰箱 放入 木质的箱子)
– 每一个lun需要关联到某一个后端存储设备,在客户端会视为一块虚拟硬盘

• ISCSI Qualified Name 名称规范
– iqn.yyyy-mm.倒序域名:自定义标识
– 用来识别 target 磁盘组,也用来识别客户机身份
名称示例
– iqn.2016-02.com.example:server0
– iqn.2016-02.com.example:desktop0

虚拟机server:服务端
一 安装targetcli软件包
[root@server0 ~]# yum -y install targetcli
[root@server0 ~]# rpm -q targetcli #检测软件包是否安装

服务端软件: httpd (提供服务)
客户端软件: firefox (访问服务)
二 运行targetcli进行配置
[root@server0 ~]# targetcli           #进入iSCSI配置模式,此模式支持TAB键
/> ls                     #查看支持服务
1.生成后端存储backstore,后端存储( 冰箱 /dev/vdb1)
/> backstores/block create name=nsd dev=/dev/vdb1         #告诉它,创建存储类型为块的一个后端真实设备dev/vdb1,名字为nsd,的共享后端存储
Created block storage object nsd using /dev/vdb1.
/> ls

 

 

 

 

2.生成target,磁盘组( 木质的包装 )
/> iscsi/ create iqn.2019-08.com.example:server  #名字要求iqn.yyyy-mm
Created target iqn.2019-08.com.example:server.
Created TPG 1.

/> ls
/> exit

   #查看此文件

. ISCSI Qualified Name名称规范
- iqn.yyyy-mm.倒序域名:自定义标识
-用来识别 target磁盘组,也用来识别客户机身份

 

3. lun,逻辑单元 (动作 将 冰箱 放入 木质的箱子)
[root@server0 ~]# targetcli
/> ls
/> iscsi/iqn.2019-08.com.example:server/tpg1/luns create /backstores/block/nsd    

/> ls

 

 

 

 

 

#/iqn.2019-08.com.example:server里面做了一个lun,lun里面是 /backstores/block/nsd(/dev/vbd1)

4. 设置访问控制:设置客户端声称的名字
/> iscsi/iqn.2019-08.com.example:server/tpg1/acls

create iqn.2019-08.com.example:desktop                                 # iqn.2019-08.com.example:desktop客户端声称的名字

Created Node ACL for iqn.2019-08.com.example:desktop
Created mapped LUN 0.
/> ls

5.设置服务端在那个IP地址上提供服务,以及开放端口
/> iscsi/iqn.2019-08.com.example:server/tpg1/portals

create ip_address=172.25.0.11                #本机IP

/> ls
/> exit

三 重起服务,设置开机自启动
[root@server0 ~]# systemctl restart target
[root@server0 ~]# systemctl enable target          #开机自启动
ln -s '/usr/lib/systemd/system/target.service' '/etc/systemd/system/multi-user.target.wants/target.service'
####################################################
客户端:虚拟机desktop
一 安装iscsi-initiator-utils软件包

Yum仓库可以补全包名前提: 1.当前系统没有安装此软件 2.必须有缓存
[root@desktop0 ~]# yum repolist           #生成Yum的缓存
[root@desktop0 ~]# yum -y install isc(tab)

[root@desktop0 ~]# rpm -q iscsi-initiator-utils      #查验是否安装 此软件
iscsi-initiator-utils-6.2.0.873-21.el7.x86_64

二 设置客户端声称的名字
[root@desktop0 ~]# vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2019-08.com.example:desktop                 #对应服务端中ACL声称客户端名字

三 客户端刷新声称名字的服务
[root@desktop0 ~]# systemctl restart iscsid     #有d结尾的是客户端iscsi一个子服务,刷新重启。iscsi(主)----》iscsid(子服务)
Warning: Unit file of iscsid.service changed on
disk, 'systemctl daemon-reload' recommended.
[root@desktop0 ~]# systemctl daemon-reload
[root@desktop0 ~]# systemctl restart iscsid

四 发现服务端共享存储:
Linux查看命令帮助的方法 : man iscsiadm
全文查找/example 按n项下跳转匹配,看到EXAMPLES

Ctrl - :减小字体
Ctrl Shift + :变大字体

[root@desktop0 ~]# iscsiadm --mode discoverydb --type sendtargets --portal 172.25.0.11 --discover

172.25.0.11:3260,1 iqn.2019-08.com.example:server        (#回应给与箱子)

五 重起iscsi服务,加载共享存储
[root@desktop0 ~]# lsblk
[root@desktop0 ~]# systemctl restart iscsi
[root@desktop0 ~]# lsblk
##################################################

authorization :验证(认证)

##################################################
总结:
iSCSI服务端:
1.防火墙默认区域设置为trusted
2.划分一个分区
3.安装软件包targetcli
4.运行targetcli进行配置
A:建立后端存储
B:建立target磁盘组
C:lun进行关联
D:设置客户端声称的名字
E:设置本机那个IP地址提供服务
5.重起target服务

客户端:
1.防火墙默认区域设置为trusted
2.安装软件包iscsi-initiator-utils
3.设置客户端声称的名字/etc/iscsi/initiatorname.iscsi
4.重起iscsid刷新客户端声称的名字
5.发现共享存储
[root@desktop0 ~]# iscsiadm --mode discoverydb --type sendtargets --portal 172.25.0.11 --discover

6.加载使用共享存储,重起iscsi服务

 

 *********************************************************************************************************************************************************

补充第二种方法:

连接、发现iSCSI磁盘

###################################################

数据库服务基础

 

 

数据库:存放数据的仓库 管理数据的一个软件

结构:数据库里有很多的库,每一个库中有很多的表格

• 常见的关系型 数据库管理系统
– 微软的 SQL Server
– IBM的 DB2
– 甲骨文的 Oracle、MySQL
– 社区开源版 MariaDB

###################################################
一 、部署mariadb数据库服务器
• RHEL7 中的 MariaDB 相关包
– mariadb-server:提供服务端有关的系统程序
– mariadb:提供客户端及管理工具
[root@server0 ~]# yum -y install mariadb-server
二、重起mariadb程序
[root@server0 ~]# systemctl restart mariadb

三、数据库的基本操作
[root@server0 ~]# mysql
> show databases; #查看所有的库
> create database nsd; #创建nsd库
> show databases;
> drop database nsd; #删除nsd库

MariaDB [(none)]> use mysql; #切换到 mysql库
MariaDB [mysql]> show tables; #查看当前库中的所有表格

MariaDB [mysql]> create database nsd1907;
MariaDB [mysql]> show databases;
MariaDB [test]> exit
Bye

四、在Linux命令行,设置数据库管理员密码
数据库管理员:root对数据最高权限,用户信息存放mysql库user表
系统管理员:root对系统最高权限,用户信息存放/etc/passwd

• 为数据库账号修改密码
– mysqladmin [-u用户名] [-p[旧密码]] password '新密码'

]# mysqladmin -u root password '123456'
已知旧密码修改密码
]# mysqladmin -u root -p123456 password '123'

[root@server0 ~]# mysql -u root -p #交互式进入数据库
Enter password:

[root@server0 ~]# mysql -u root -p123 #非交互式进入

##############################################
数据库MariaDB的主配置文件:/etc/my.cnf

##############################################
五、导入数据

1.下载备份文件
[root@server0 ~]# wget http://classroom.example.com/pub/materials/users.sql

[root@server0 ~]# ls

2.导入数据
]# mysql -u root -p123 nsd1907 < /root/users.sql

]# mysql -u root -p123
MariaDB [(none)]> use nsd1907; #进入nsd1907库
MariaDB [nsd1907]> show tables; #显示当前库中有哪些表格
+-------------------+
| Tables_in_nsd1907 |
+-------------------+
| base |
| location |
+-------------------+
#nsd1907里面有两个表格,验证成功,证明数据导入成功。
###################################################
六、表格的操作:增(insert)删 (delete) 改(update) 查(select)
表记录(1、2......)
表字段 (编号 姓名 联系方式 居住地址)

编号 姓名 联系方式 居住地址
1 dc 138..... 东村
2 tc 138..... 西村

查(select) 格式: select 表字段 from 库名.表名 ;
> use nsd1907; #切换到nsd1907库中
> select * from base; #查询base表中所有表字段、所有表记录
> select * from nsd1907.base;
> select * from location;
> select id,name from base;

有条件的查询 where 表字段='值'
> use nsd1907; #切换到nsd1907库中
> select * from base;
> select * from base where password='123';
> select * from base where id='5';
> select * from base where name='tom';

> select * from location;
> select * from location where id='5';

查询表结构:desc 表名;
MariaDB [nsd1907]> desc base; # 适合查看大表
MariaDB [nsd1907]> desc location;

MariaDB [nsd1907]> use mysql; #切换到mysql库
MariaDB [mysql]> desc user;

MariaDB [mysql]> select user,host,password from user;

###################################################
七、数据库的授权
– 除了 root 用户,此nsd1907数据库只能被用户lisi查询,
此用户的密码为123

– GRANT 权限列表 ON 数据库名.表名 TO 用户名@
客户机地址 IDENTIFIED BY '密码';
#权限列表:可以是增删改查
MariaDB [mysql]> grant select on nsd1907.* to lisi@localhost identified by '123';

#当lisi通过localhost本地登陆,输入密码123。将会获得nsd1907库中所有表格的查询权限
#lisi@localhos lisi用户,localhos本地登录 lisi不需要创建,在此命令回车,会在user表中直接
生成lisi相关信息
#*.*所有库的所有表。
#同样密码,在MariaDB中生成的加密字符串是一样的。

MariaDB [mysql]> select user,host,password from user;

###################################################
案例4:使用数据库查询
2. 在系统 server0 上使用数据库nsd1907,并使用相
应的 SQL 查询以回答下列问题:
1)密码是 solicitous 的人的名字?
> use nsd1907;
> select * from base;
> select * from base where password='solicitous';
> select name from base where password='solicitous';

2)有多少人的姓名是 Barbara 同时居住在 Sunnyvale?
> select * from base,location
where base.name='Barbara' and location.city='Sunnyvale'
and base.id=location.id;

> select count(*) from base,location
where base.name='Barbara' and location.city='Sunnyvale'
and base.id=location.id;

> insert base values('6','Barbara','456789'); #插入记录
> select * from base;

> insert location values('6','Sunnyvale'); #插入记录
> select * from location;

1. 禁止空密码root用户访问 mariadb 数据库
> use mysql;
> select user,host,password from user;
> select user,host,password from user where password='';

> delete from user where password=''; #删除密码为空的记录

> select user,host,password from user;

> flush privileges; #刷新user表所有记录
> exit

[root@server0 ~]# mysql -u root -hserver0.example.com
-h:指定登陆方式
此方式登陆失败,为成功
###################################################

posted @ 2022-12-01 17:24  东山有耳  阅读(125)  评论(0)    收藏  举报