10.ISCSI 数据库

iSCSI磁盘

iSCSI磁盘的工作模式, 默认端口:3260

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

iSCSI磁盘的构成

• backstore

后端存储(冰箱)
– 对应到服务端提供实际存储空间的设备,需要起一个管理名称

• target

磁盘组(木质箱子)
– 是客户端的访问目标,作为一个框架,由多个lun组成

• lun

逻辑单元(将冰箱放入木质的箱子过程)
– 每一个lun需要关联到某一个后端存储设备,在客户端会视为一块虚拟硬盘

• ISCSI Qualified Name 名称规范(iqn)

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

服务端:

安装targetcli软件包
[root@server0 ~]# yum -y install targetcli
[root@server0 ~]# rpm -q targetcli
进行配置
[root@server0 ~]# targetcli
/> ls
1.指定backstore,后端存储(冰箱)
/> backstores/block create dev=/dev/vdb1 name=nsd
 Created block storage object nsd using /dev/vdb1.

/> ls
2.建立target,磁盘组(建立木质箱子)
/> iscsi/ create iqn.2019-12.com.example:server

 Created target iqn.2019-12.com.example:server.
 Created TPG 1.

/> ls
3.lun进行关联
/> iscsi/iqn.2019-12.com.example:server/tpg1/luns create /backstores/block/nsd
 
Created LUN 0.

/> ls
4.设置ACL访问控制(设置客户端声称的名字)符合iqn名称规范
/> iscsi/iqn.2019-12.com.example:server/tpg1/acls create iqn.2019-12.com.example:desktop

Created Node ACL for iqn.2019-12.com.example:desktop
Created mapped LUN 0.
/> ls
5.设置监听IP地址与端口
/> iscsi/iqn.2019-12.com.example:server/tpg1/portals  create 0.0.0.0

/> ls

/> exit
重起target服务
[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'

客户端:

安装软件包,所需软件包:iscsi-initiator-utils

Yum仓库提供软件包名补全的功能:
前提1:该软件包当前系统没有安装
前提2:必须要有Yum的缓存,yum repolist生成Yum的缓存

[root@desktop0 ~]# yum repolist
[root@desktop0 ~]# yum -y install isc(tab)
[root@desktop0 ~]# yum search iscsi        #查询关键字

[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-12.com.example:desktop
重起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
寻找服务端访问共享存储
            Linux查看命令帮助的方法 :  man  iscsiadm 
            全文查找/example   按n项下跳转匹配,看到EXAMPLES
[root@desktop0 ~]# iscsiadm --mode discoverydb --type sendtargets --portal 172.25.0.11 --discover

172.25.0.11:3260,1 iqn.2019-12.com.example:server
加载共享存储  iscsi主服务----》子服务iscsid
[root@desktop0 ~]# lsblk 
[root@desktop0 ~]# systemctl restart iscsi
[root@desktop0 ~]# lsblk

数据库

数据库:存放数据的仓库
在数据库中有很多的库,在每一个库中有很多的表格

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

DataBase(数据库)

一、部署mariadb数据库服务器

• RHEL7 中的 MariaDB 相关包
– mariadb-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    #进入数据库
MariaDB [(none)]> show databases;         #查看都有那些库
MariaDB [(none)]> create database nsd;     #创建nsd库
MariaDB [(none)]> show databases;         #查看都有那些库

MariaDB [(none)]> create database nsd1911;  #创建库nsd1911
MariaDB [(none)]> show databases;           #查看都有那些库
MariaDB [(none)]> drop database nsd;        #删除nsd库
MariaDB [(none)]> show databases;
MariaDB [(none)]> exit                     #退出数据库

[root@server0 ~]# mysql    #进入数据库
MariaDB [(none)]> show databases;   #查看当前有哪些库
MariaDB [(none)]> use mysql;      #进入mysql库
MariaDB [mysql]> show tables;     #显示当前库中有那些表格

MariaDB [(none)]> show databases;    #查看当前有哪些库
MariaDB [mysql]> use nsd1911;     #进入nsd1911库
MariaDB [nsd1911]> show tables;    #显示当前库中有那些表格

MariaDB [nsd1911]> use test;
MariaDB [test]> show tables;
MariaDB [(none)]> exit    

三、为数据库的管理员设置密码

数据库管理员为root,针对数据库有最高权限,用户信息存放在mysql库中user表
系统管理员为root,针对系统有最高权限,用户信息存放在/etc/passwd
• 为数据库账号修改密码
– mysqladmin [-u用户名] [-p[旧密码]] password ‘新密码’

扫描二维码关注公众号,回复: 8609071 查看本文章

1.设置新密码

[root@server0 ~]# mysqladmin -u root  password '789'

2.已知旧密码修改新密码

[root@server0 ~]# mysqladmin -u root -p789  password '123'

[root@server0 ~]# mysql -u root -p123    #进入数据库
MariaDB [(none)]> exit

四、恢复数据

1.下载表格备份的数据文件

[root@server0 ~]# wget http://classroom.example.com/pub/materials/users.sql

[root@server0 ~]# ls

2.恢复数据到数据库

[root@server0 ~]# mysql -u root -p123 nsd1911 < /root/users.sql
[root@server0 ~]# mysql -u root -p123
MariaDB [(none)]> use nsd1911;
MariaDB [nsd1911]> show tables;
+-------------------+
| Tables_in_nsd1911 |
+-------------------+
| base              |
| location          |
+-------------------+

五、表格操作: 增insert 删delete 改update 查select

表记录与表字段
查询格式:
select 表字段 from 库名.表名;

[root@server0 ~]# mysql -u root -p123
> use nsd1911;
> show tables;
> select * from base;
> select name,password from base;

> use mysql;
> select * from nsd1911.base;
> use nsd1911;
> select * from location;

查询表结构的命令:desc

[root@server0 ~]# mysql -u root -p123
> use nsd1911;
> desc base;
> desc location;

> use mysql;
> desc user;
> select user,host,password from user;

有条件的查询:

[root@server0 ~]# mysql -u root -p123
> use nsd1911;
> select * from base;

> select * from base where password='123';
> select * from base where id='4';
> select * from base where name='tom';
> select * from base where password='456';

六、数据库的授权

用户授权设置
• MariaDB [(none)]> 交互指令
– GRANT 权限列表 ON 数据库名.表名 TO 用户名@
客户机地址 IDENTIFIED BY ‘密码’;

例:– 除了 root 用户,此数据库nsd1911只能被用户lisi查询,此用户的密码为123
当lisi进行本地登陆输入密码123,将会获得nsd1911所有表的查询权限

[root@server0 ~]# mysql -u root -p123

MariaDB [(none)]> grant select on nsd1911.* to lisi@localhost identified by '123';


MariaDB [(none)]> use mysql;
MariaDB [mysql]> select user,host,password from user;

案例4:使用数据库查询

  1. 禁止空密码root用户访问 mariadb 数据库
[root@server0 ~]# mysql -u root -p123
> use mysql;
> 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 -h server0.example.com #登陆失败
  1. 在系统 server0 上使用数据库 nsd1911,并使用相
    应的 SQL 查询以回答下列问题:
    1)密码是 solicitous 的人的名字?
    [root@server0 ~]# mysql -u root -p123

use nsd1911;
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;
发布了37 篇原创文章 · 获赞 48 · 访问量 1697

猜你喜欢

转载自blog.csdn.net/tian1345/article/details/103481140