实验环境准备:防火墙默认区域设置为trusted 虚拟机server [root@server0 ~]# firewall-cmd --set-default-zone=trusted
虚拟机desktop [root@desktop0 ~]# firewall-cmd --set-default-zone=trusted ######################################################## iSCSI网络磁盘,默认端口3260 前提:划分一个3G的主分区 虚拟机Server: [root@server0 ~]# fdisk /dev/vdb [root@server0 ~]# lsblk NAME SIZE TYPE MOUNTPOINT vda 10G disk └─vda1 10G part / vdb 10G disk └─vdb1 3G part [root@server0 ~]# ls /dev/vdb1
• Internet SCSI,网际SCSI接口
– 一种基于C/S架构的虚拟磁盘技术 – 服务器提供磁盘空间,客户机连接并当成本地磁盘使用
• ISCSI Qualified Name(iqn) 名称规范
– iqn.yyyy-mm.倒序域名:自定义标识 – 用来识别 target 磁盘组,也用来识别客户机身份
qq.com .com.qq example.com .com.example
iSCSI磁盘的构成• backstore,后端存储(指共享的分区或磁盘----大冰箱) – 对应到服务端提供实际存储空间的设备,需要起一个管理名称
• target,磁盘组(----木质箱子) – 是客户端的访问目标,作为一个框架,由多个lun组成
• lun,逻辑单元(将 后端存储 放入 磁盘组 过程) – 每一个lun需要关联到某一个后端存储设备,在客户端 会视为一块虚拟硬盘
大冰箱----->纸制的包装------>木质箱子 接收方: 看到------>木质箱子
虚拟机server:服务端:
一 划分一个分区或准备一个磁盘
/dev/vdb1
二 安装服务端软件包[root@server0 ~]# yum -y install targetcli
三 运行命令进行配置[root@server0 ~]# targetcli /> ls 1.创建后端存储(购买大冰箱 并且 放入纸制的包装) /> backstores/block create name=nsd dev=/dev/vdb1 /> ls
2.创建磁盘组target (创建木质的箱子) /> iscsi/ create iqn.2019-03.com.example:server0 /> ls
3.进行lun关联 /> iscsi/iqn.2019-03.com.example:server0/tpg1/luns create /backstores/block/nsd
/> ls /> exit #自动保存
[root@server0 ~]# targetcli /> ls
4.设置访问控制(acl),设置 客户端声称的名字 /> iscsi/iqn.2019-03.com.example:server0/tpg1/acls create iqn.2019-03.com.example:desktop0
/> ls
5.启用相应的IP地址以及端口 /> iscsi/iqn.2019-03.com.example:server0/tpg1/portals create 172.25.0.11
/> 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' [root@server0 ~]#
虚拟机desktop:
1.安装客户端软件,所需软件包:iscsi-initiator-utilsyum补全的前提条件: 1.必须有Yum仓库缓存 [root@desktop0 ~]# yum repolist #生成Yum的缓存
2.能够补全的包名,一定是当前系统没有安装
[root@desktop0 ~]# rpm -q iscsi-initiator-utils iscsi-initiator-utils-6.2.0.873-21.el7.x86_64 [root@desktop0 ~]#
2.修改配置文件,指定客户端声称的名字[root@desktop0 ~]# vim /etc/iscsi/initiatorname.iscsi InitiatorName=iqn.2019-03.com.example:desktop0
3.重起iscsid服务,仅仅是刷新客户端声称的名字[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项下跳转匹配
Ctrl - :减小字体 Ctrl Shift + :变大字体
]# iscsiadm --mode discoverydb --type sendtargets --portal 172.25.0.11 --discover
屏幕显示:172.25.0.11:3260,1 iqn.2019-03.com.example:server0
5.重起iscsi服务,使用共享存储iscsi----->iscsid服务收集配文件信息 [root@desktop0 ~]# lsblk [root@desktop0 ~]# systemctl restart iscsi [root@desktop0 ~]# lsblk
[root@desktop0 ~]# systemctl enable iscsi #设置开机自起
########################################################
总结:服务端: 一 修改防火墙默认区域 二 划分新的分区 三 安装服务端 targetcli 软件 四 运行targetcli进行配置 1.建立后端存储 2.建立磁盘组target 3.进行关联lun 4.设置ACL,书写客户端声称的名字 5.启用相应IP地址及端口 五 重起target服务
客户端: 一 安装客户端软件包iscsi-initiator-utils 二 修改配置文件,设置客户端声称的名字 vim /etc/iscsi/initiatorname.iscsi 三 重起iscsid进行刷新 四 执行发现共享存储命令 ]# iscsiadm --mode discoverydb --type sendtargets --portal 172.25.0.11 --discover
五 重起iscsi客户端服务,使用共享存储
什么是数据库:存放数据的仓库
– 社区开源版 MariaDB database
结构:在数据库中会有很多的库,在每一个库中有许多的表格
一 、部署mariadb数据库服务器,默认端口:3306mariadb-server:提供服务端有关的系统程序
[root@server0 ~]# yum -y install mariadb-server
[root@server0 ~]# systemctl restart mariadb #重起数据库服务 [root@server0 ~]# systemctl enable mariadb #设置开机自起 ln -s '/usr/lib/systemd/system/mariadb.service' '/etc/systemd/system/multi-user.target.wants/mariadb.service'
二、数据库的基本操作,默认无需密码验证[root@server0 ~]# mysql > show databases; #查看所有库 > create database nsd; #创建nsd库
> show databases; #查看所有库 > drop database nsd; #删除nsd库
> show databases; > create database nsd1902; #创建nsd1902库 > show databases;
> use mysql; #进入mysql库 > show tables; #查看库中都有那些表格 > use nsd1902; #进入nsd1902库 > show tables; #查看库中都有那些表格 #####################################################
三 、在Linux命令行,为数据库管理员设置密码数据库管理员为root,针对数据库具备最高权限的用户,mysql中user表 系统管理员为root,针对系统具备最高权限的用户, /etc/passwd
• 为数据库账号修改密码 – mysqladmin [-u用户名] [-p[旧密码]] password '新密码'
MariaDB [mysql]> exit Bye [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' [root@server0 ~]# mysql -u root -p321
########################################################
四 、导入/恢复到数据库– mysql [-u用户名] [-p[密码]] 数据库名 < 备份文件.sql
[root@server0 ~]# wget http://classroom.example.com/pub/materials/users.sql
[root@server0 ~]# mysql -u root -p123 nsd1902 < users.sql
[root@server0 ~]# mysql -u root -p123 MariaDB [(none)]> use nsd1902; #进入nsd1902库 MariaDB [nsd1902]> show tables; #显示库中所有表格
#####################################################
五、表格的操作表格的组成: 表记录 表字段
增(insert) 删 (delete) 改(update) 查(select)
查询表记录信息: select 表字段 from 库名.表名; [root@server0 ~]# mysql -u root -p123
> use nsd1902; #进入nsd1902库 > show tables; #查看都有那些表格 > select * from nsd1902.base; #查询表中所有字段的内容 > select * from location; #查询表中所有字段内容
补充:查询表结构 desc 表名;
MariaDB [nsd1902]> desc base; MariaDB [nsd1902]> use mysql; MariaDB [mysql]> desc user; MariaDB [mysql]> select user,host,password from user;
有条件的查询: 查询在base表中密码为456人? MariaDB [mysql]> use nsd1902;
MariaDB [nsd1902]> select * from base where password='456';
MariaDB [nsd1902]> select * from base where password='123';
MariaDB [nsd1902]> select * from base where name='tom';
MariaDB [nsd1902]> select * from base where id='4';
#######################################################
六、数据库的授权,让非管理员用户获得一定的权限此nsd1902数据库只能被用户lisi查询操作,此用户的密码为123
– GRANT 权限列表 ON 数据库名.表名 TO 用户名@ 客户机地址 IDENTIFIED BY '密码'; 当lisi从localhost进行登陆输入密码123,将会获得nsd1902库中所有表的查询权限
[root@server0 ~]# mysql -u root -p123
> grant select on nsd1902.* to lisi@localhost identified by '123';
> select user,host,password from mysql.user; 所有能够登陆数据库的用户,信息都会在mysql库中user表
##################################################### [root@server0 ~]# mysql -u lisi -p123 Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 14 Server version: 5.5.35-MariaDB MariaDB Server
Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> SELECT count(*) FROM base,location WHERE base.name='Barbara' location.city='Sunnyvale' AND base.id=location.id ; #多条件查询
######################################################
一 部署MariaDB数据库1.安装mariadb-server软件 [root@server0 ~]# yum -y install mariadb-server 2.重起mariadb服务 [root@server0 ~]# systemctl restart mariadb 3.设置数据库管理员密码为 '123' [root@server0 ~]# mysqladmin -u root password '123'
二 数据库基本操作1.创建库nsd1902 [root@server0 ~]# mysql -u root -p123 MariaDB [(none)]> show databases; #查看有哪些库 MariaDB [(none)]> create database nsd1902; #创建库 MariaDB [(none)]> show databases;
2.在命令行,导入数据 [root@server0 ~]# wget http://classroom.example.com/pub/materials/users.sql
[root@server0 ~]# mysql -u root -p123 nsd1902 < users.sql [root@server0 ~]# mysql -u root -p123 MariaDB [(none)]> use nsd1902; #切换到nsd1902库 MariaDB [nsd1902]> show tables; #查看当前库中有那些表格
案例5:使用数据库查询 2. 在系统 server0 上使用数据库 nsd1902,并使用相 应的 SQL 查询以回答下列问题: 1)密码是 solicitous 的人的名字? [root@server0 ~]# mysql -u root -p123 > use nsd1902; #切换到nsd1902库 > select * from base; > select * from base where password='solicitous'; > select name from base where password='solicitous';
2)有多少人的姓名是 Barbara 同时居住在 Sunnyvale? MariaDB [nsd1902]> select * from base,location -> where base.name='Barbara' and -> location.city='Sunnyvale' and -> base.id=location.id;
MariaDB [nsd1902]> select count(*) from base,location where base.name='Barbara' and location.city='Sunnyvale' and base.id=location.id;
> insert base values ('6','Barbara','Taren1'); #插入记录 > select * from base; > insert location values ('6','Sunnyvale'); #插入记录 > select * from location;
1. 禁止空密码root用户访问 mariadb 数据库 [root@server0 ~]# mysql -u root -p123 > use mysql; > select user,host,password from user;
将user表中密码为空的记录全部删除 > select user,host,password from user where password='';
> delete from user where password=''; #删除密码为空的记录
> select user,host,password from user; > flush privileges; #刷新user表内容
-h:指定登陆的方式 [root@server0 ~]# mysql -u root -h server0.example.com