13.iscsi、MariaDB

    xiaoxiao2023-09-25  125

    一、ISCSI磁盘共享

    实验环境准备:防火墙默认区域设置为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

    iSCSI磁盘的工作模式

     

    • 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-utils

       yum补全的前提条件:               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数据库服务器,默认端口:3306

        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 > 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

    最新回复(0)