教学环境介绍
[root@room9pc01 ~]# rht-vmctl reset classroom
[root@room9pc01 ~]# rht-vmctl reset server
[root@room9pc01 ~]# rht-vmctl reset desktop
[root@room9pc01 ~]# gos
[root@server0 ~]#
[root@server0 ~]# yum clean all #清空Yum缓存
[root@server0 ~]# yum repolist
#
iSCSI网络磁盘 ,默认端口 3260
• Internet SCSI,网际SCSI接口
– 一种基于C/S架构的虚拟磁盘技术
– 服务器提供磁盘空间,客户机连接并当成本地磁盘使用
达外冰箱——->纸的包装——->制作 木箱子——>发送
• backstore,后端存储
– 对应到服务端提供实际存储空间的设备,需要起一个管理名称
• target,磁盘组
– 是客户端的访问目标,作为一个框架,由多个lun组成
• lun,逻辑单元
– 每一个lun需要关联到某一个后端存储设备,在客户端
会视为一块虚拟硬盘
• ISCSI Qualified Name 名称规范(iqn)
– iqn.yyyy-mm.倒序域名:自定义标识
环境前提:
修改两台虚拟机的防火墙:
[root@server0 ~]# firewall-cmd –set-default-zone=trusted
[root@desktop0 ~]# firewall-cmd –set-default-zone=trusted
虚拟机Server0
1.划分新的分区,该主分区使用的空间,为硬盘所有的空间
[root@server0 ~]# fdisk /dev/vdb
按n创建新的分区
[root@server0 ~]# lsblk
2.安装软件包targetcli
3.运行命令进行配置
[root@server0 ~]# targetcli
1.建立后端存储(/dev/vdb1类似于冰箱—–>nsd类似于纸箱子)
/> backstores/block create name=nsd dev=/dev/vdb1
/> ls
2.建立target磁盘组(木质箱子)
/> iscsi/ create iqn.2018-07.example.com:server0
/> ls
3.关联lun
/> iscsi/iqn.2018-07.example.com:server0/tpg1/luns
create /backstores/block/nsd
/> ls
4.设置访问控制,设置客户端声称的名字
/> iscsi/iqn.2018-07.example.com:server0/tpg1/acls
create iqn.2018-07.example.com:desktop0
/> ls
客户端在访问服务端共享存储时声称的名字
5.开放网络接口
/> iscsi/iqn.2018-07.example.com:server0/tpg1/portals
create 172.25.0.11
/> ls
/> exit
重起服务target
[root@server0 ~]# systemctl restart target
[root@server0 ~]# systemctl enable target
#
虚拟机Desktop0
1.安装客户端访问程序
yum repolist #生成Yum缓存
yum -y install iscsi-initiator-utils.i686
yum -y install isc(tab)
[root@desktop0 ~]# rpm -q iscsi-initiator-utils
iscsi-initiator-utils-6.2.0.873-21.el7.x86_64
iscsi-initiator-utils-6.2.0.873-21.el7.i686
2.修改配置文件,指定客户端生成的名字
[root@desktop0 ~]# vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2018-07.example.com:desktop0
[root@desktop0 ~]# systemctl restart iscsid //刷新IQN标识
Warning: Unit file of iscsid.service changed on disk, ‘systemctl daemon-reload’ recommended.
[root@desktop0 ~]# systemctl daemon-reload
[root@desktop0 ~]# systemctl restart iscsid
3.发现服务端共享存储 参考man iscsiadm 按G(大写)到全文最后
字体变大:Ctrl shift +
字体变小:Ctrl -
[root@desktop0 ~]# iscsiadm –mode discoverydb –type sendtargets –portal 172.25.0.11 –discover
4.加载共享存储
[root@desktop0 ~]# lsblk
[root@desktop0 ~]# systemctl restart iscsi #客户端服务
[root@desktop0 ~]# lsblk
[root@desktop0 ~]# systemctl enable iscsi
#
数据库服务基础
什么是数据库:存放数据的仓库
• 禁止监听,只服务于本机
[root@server0 ~]# vim /etc/my.cnf #数据库主配置文件
[mysqld]
skip-networking #跳过网络监听
1.安装数据库软件
虚拟机server0
– mariadb-server:提供服务端有关的系统程序,默认端口 3306
[root@server0 ~]# yum -y install mariadb-server
2.启动数据库服务
[root@server0 ~]# systemctl restart mariadb
[root@server0 ~]# systemctl enable mariadb
二、数据库基本操作
1.使用 mysql 命令,登入交互界面,实现数据库管理操作
[root@server0 ~]# mysql
show databases; #查看所有库
create database nsd1806; #创建库nsd1806
show databases;
drop database nsd1806; #删除库nsd1806
show databases;
exit
Bye
2.为数据库管理员设置密码
数据库管理员root:数据库MariaDB最高权限用户,mysql库中user表
系统管理员root:Linux系统最高权限用户,/etc/passwd
• 为数据库账号修改密码
– mysqladmin [-u用户名] [-p[旧密码]] password ‘新密码’
[root@server0 ~]# mysqladmin -u root password ‘123’
[root@server0 ~]# mysql -u root -p #交互式设置密码
Enter password:
[root@server0 ~]# mysql -u root -p123 #非交互式设置密码
3.导入数据到数据库
[root@server0 ~]# mysql -u root -p123
MariaDB [(none)]> create database nsd; #创建库nsd
MariaDB [(none)]> show databases; #查看所有库
MariaDB [(none)]> exit
[root@server0 ~]# wget http://classroom.example.com/pub/materials/users.sql
将数据导入到库nsd中
[root@server0 ~]# mysql -u root -p123 nsd < users.sql
[root@server0 ~]# mysql -u root -p123
MariaDB [(none)]> use nsd; #进入库nsd
MariaDB [nsd]> show tables; #查看当前库都有那些表格
#
4.表格操作: 增(insert) 删(delete) 改(update) 查(select)
表记录的查询操作:
[root@server0 ~]# mysql -u root -p123
MariaDB [(none)]> use nsd;
MariaDB [nsd]> show tables;
MariaDB [nsd]> select 表字段 from 表名字;
MariaDB [nsd]> select * from base;
MariaDB [nsd]> select * from location;
MariaDB [nsd]> select id,name from base;
MariaDB [nsd]> select name,password from base;
MariaDB [nsd]> desc 表名字; #查看表结构
MariaDB [nsd]> use mysql;
MariaDB [nsd]> show tables;
MariaDB [mysql]> desc user;
MariaDB [mysql]> select user,host,password from user;
MariaDB [mysql]> select * from nsd.base;
有条件的查询:
use nsd;
select * from base where name=’tom’;
select * from base where name=’barbara’;
select * from base where password=’123’;
select id,name from base where password=’123’;
#
数据库的授权
– 除了 root 用户,此nsd数据库只能被用户 lisi 查询,
此用户的密码为123
– grant 权限列表 on 数据库名.表名 to 用户名@客户机地址
identified by ‘密码’;
当lisi从localhost本地进行登陆,输入密码123,将会获得nsd库中所有表的读取权限。
[root@server0 ~]# mysql -u root -p123
grant select on nsd.* to lisi@localhost identified
by ‘123’;select user,host,password from mysql.user;
#
案例5:使用数据库查询
在系统 server0 上使用数据库 nsd,并使用相
应的 SQL 查询以回答下列问题:
1)密码是 solicitous 的人的名字?
[root@server0 ~]# mysql -u root -p123use nsd;
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’,’789’);
select * from base;
insert location values(‘6’,’Sunnyvale’);
select * from location ;
- 禁止空密码root用户访问 mariadb 数据库
[root@server0 ~]# mysql -u root -p123
MariaDB [(none)]> use mysql;
MariaDB [mysql]> select user,host,password from user;
删除表中,密码为空的记录
MariaDB [mysql]> delete from user where password=”;
MariaDB [mysql]> select user,host,password from user;
MariaDB [mysql]> flush privileges; #刷新策略
MariaDB [mysql]> exit
Bye
[root@server0 ~]# mysql -u root -h server0.example.com
ERROR 1130 (HY000): Host ‘server0.example.com’ is not allowed to connect to this MariaDB server
登陆不成功为正确