一 环境设置
虚拟机server
[root@server0 ~]# firewall-cmd --set-default-zone=trusted
[root@server0 ~]# firewall-cmd --get-default-zone
虚拟机desktop
[root@desktop0 ~]# firewall-cmd --set-default-zone=trusted
[root@desktop0 ~]# firewall-cmd --get-default-zone
##########################################################
iSCSI网络磁盘
• Internet SCSI,网际SCSI接口(默认端口:3260)
– 一种基于C/S架构的虚拟磁盘技术
– 服务器提供磁盘空间,客户机连接并当成本地磁盘使用
一 划分一个主分区3G
[root@server0 ~]# fdisk /dev/vdb
[root@server0 ~]# lsblk
[root@server0 ~]# ls /dev/vdb1
二 服务端选择虚拟机server,构建iSCSI共享存储
• backstore,后端存储
– 对应到服务端提供实际存储空间的设备,需要起一个管理名称
• target,磁盘组
– 是客户端的访问目标,作为一个框架,由多个lun组成
• ISCSI Qualified Name(iqn) 名称规范
– iqn.yyyy-mm.倒序域名:自定义标识
– 用来识别 target 磁盘组,也用来识别客户机身份
• 名称示例
– iqn.2016-02.com.example:server0
• lun,逻辑单元
– 每一个lun需要关联到某一个后端存储设备,在客户端会视为一块虚拟硬盘
冰箱------->纸质的包装 木质的箱子
1.安装targetcli软件包
[root@server0 ~]# yum -y install targetcli
2.配置
a)建立backstore,后端存储(冰箱)
[root@server0 ~]# targetcli
/> ls
/> backstores/block create name=nsd dev=/dev/vdb1
/> ls
b)建立target磁盘组(建立木质的箱子)
iqn.yyyy-mm.倒序域名:自定义标识
/> iscsi/ create iqn.2019-05.com.example:server0
/> ls
c)进行lun关联(冰箱----->木质的箱子)
/> iscsi/iqn.2019-05.com.example:server0/tpg1/luns create /backstores/block/nsd
/> ls
d)设置访问控制ACL,设置客户端声称的名字(符合iqn命名规范)
/> iscsi/iqn.2019-05.com.example:server0/tpg1/acls create
iqn.2019-05.com.example:abc
/> ls
e)指定本机开放共享服务的IP地址及端口
/> iscsi/iqn.2019-05.com.example:server0/tpg1/portals create 172.25.0.11
/> ls
[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’
[root@server0 ~]#
###########################################################
虚拟机desktop:客户端
1.安装客户端软件
• 所需软件包:iscsi-initiator-utils
Yum安装软件时可以补全包名:
前提1:必须有Yum缓存, yum repolist 可以直接生成缓存
前提2:必须是当前系统没有安装
[root@desktop0 ~]# rpm -q iscsi-initiator-utils
iscsi-initiator-utils-6.2.0.873-21.el7.x86_64
[root@desktop0 ~]# yum -y install iscsi(tab)
2.配置客户端声称的名字
[root@desktop0 ~]# vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2019-05.com.example:abc
3.客户端刷新声称名字的服务
[root@desktop0 ~]# systemctl restart iscsid
Warning: Unit file of iscsid.service changed on
disk, ‘systemctl daemon-reload’ recommended.
[root@desktop0 ~]# systemctl daemon-reload
[root@desktop0 ~]# systemctl restart iscsid
4.发现服务端共享存储
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-05.com.example:server0
5.使用服务端共享存储
[root@desktop0 ~]# lsblk
[root@desktop0 ~]# systemctl restart iscsi #重启客户端服务
[root@desktop0 ~]# lsblk
[root@desktop0 ~]# systemctl enable iscsi #设置开机自启动服务
#########################################################
总结:
服务端:
1.修改防火墙默认区域trusted
2.安装targetcli软件
3.运行targetcli命令进行配置
1)建立后端存储
2)建立target磁盘
3)进行lun关联
4)设置ACL访问控制
5)设置启用IP地址 默认端口为3260
4.重启target服务
客户端:
1.修改防火墙默认区域trusted
2.所需软件包:iscsi-initiator-utils
3.修改配置文件/etc/iscsi/initiatorname.iscsi
4.客户端刷新声称名字的服务 systemctl restart iscsid
5.发现共享存储
]# iscsiadm --mode discoverydb --type sendtargets --portal 172.25.0.11 --discover
6.使用共享存储
]# systemctl enable iscsi
########################################################
数据库服务基础
什么是数据库:存放数据的仓库
– 社区开源版 MariaDB
部署mariadb数据库服务器
• RHEL7 中的 MariaDB 相关包
– mariadb-server:提供服务端有关的系统程序
[root@server0 ~]# yum -y install mariadb-server
[root@server0 ~]# systemctl restart mariadb
在数据库中,有众多的库,在每一个库中有很多的表格
一 数据库的基本操作
[root@server0 ~]# mysql
MariaDB [(none)]> show databases; #显示所有库
MariaDB [(none)]> create database nsd01; #创建库nsd01
MariaDB [(none)]> show databases;
MariaDB [(none)]> drop database nsd01; #删除nsd01库
MariaDB [(none)]> show databases;
MariaDB [(none)]> create database nsd1904;
MariaDB [(none)]> show databases;
MariaDB [(none)]> exit
######################################################
二 为数据库管理员设置密码
数据库管理员root,针对数据库具有最高权限,信息存放mysql库中user表
系统管理员root,针对系统具有最高权限,信息存放/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 #非交互式
已知旧密码修改新密码
[root@server0 ~]# mysqladmin -u root -p123 password ‘321’
#########################################################
数据库的主配置文件:/etc/my.cnf
#########################################################
• 导入/恢复到数据库
– mysql [-u用户名] [-p[密码]] 数据库名 < 备份文件.sql
]# wget http://classroom.example.com/pub/materials/users.sql
]# ls
]# mysql -u root -p123 nsd1904 < /root/users.sql
• 查看库中有哪些表格
[root@server0 ~]# mysql -u root -p123
MariaDB [(none)]> use nsd1904; #切换到nsd1904库
MariaDB [nsd1904]> show tables; #显示当前库有那些表格
表格: 表字段 表记录
编号 姓名 联系方式 居住地址
1 dc 138..... 东村
2 tc 138..... 西村
表格: 增(insert) 删(delete) 改(update) 查(select)
查(select)
格式: select 表字段,表字段… from 库名.表名称
[root@server0 ~]# mysql -u root -p123
MariaDB [(none)]> use nsd1904; #进入nsd1904库
MariaDB [(none)]> show tables; #显示库中所有表格
MariaDB [(none)]> select * from base;
MariaDB [(none)]> select * from location;
MariaDB [(none)]> select name,password from base;
MariaDB [(none)]> use mysql;
MariaDB [(none)]> select * from nsd1904.base;
########################################################
查看表结构: desc 表名字;
MariaDB [(none)]> desc nsd1904.base;
MariaDB [(none)]> desc mysql.user;
MariaDB [nsd1904]> select user,host,password from mysql.user;
########################################################
条件查询:
MariaDB [nsd1904]> use nsd1904;
MariaDB [nsd1904]> select * from base;
MariaDB [nsd1904]> select * from base where password=‘123’;
MariaDB [nsd1904]> select * from base where password=‘456’;
MariaDB [nsd1904]> select * from base where name=‘tom’;
MariaDB [nsd1904]> select * from base where id=‘4’;
########################################################
除了root用户,此nsd1904库只能被用户lisi查询,此用户的密码为123
数据库的授权
GRANT 权限列表 ON 数据库名.表名 TO 用户名@客户机地址
IDENTIFIED BY ‘密码’;
grant select on nsd1904.* to lisi@localhost identified by '123';
当lisi通过本地localhost登录,输入密码为123,将会获得nsd1904库中所有表格的查询权限.
[root@server0 ~]# mysql -u root -p123
MariaDB [(none)]> grant select on nsd1904.* to lisi@localhost identified by ‘123’;
MariaDB [(none)]> select user,host,password from mysql.user;
MariaDB [(none)]> exit
[root@server0 ~]# mysql -u lisi -p123 #检测lisi登录
MariaDB [(none)]> show databases;
MariaDB [(none)]> exit
#########################################################
案例4:使用数据库查询
2. 在系统 server0 上使用数据库 nsd1904,并使用相
应的 SQL 查询以回答下列问题:
1)密码是 solicitous 的人的名字?
[root@server0 ~]# mysql -u root -p123
use nsd1904;
select * from base;
select * 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 数据库
use mysql;
select user,host,password from user;
select user,host,password from user where password=’’;
#删除表中password值为空的记录
delete from user where password=’’;
select user,host,password from user;
flush privileges; #刷新user表记录
exit
验证登录失败:
[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