openstack基础服务运维-Mysql

MySql数据库

数据库是按照一定的结构来组织、存储和管理数据的仓库。为了方便数据的管理和存储,按照特定的规律存储在磁盘上。

常见的数据语言:

   (1)DDL数据定义语言:对于数据库内部的对象进行创建、删除、修改等等。

   (2)DML数据操纵语言:对于数据库当中的表记录操作,主要有表的插入、更新、删除、查询。

   (3)DCL数据控制语言:用来去设置或者更改数据库用户或者角色权限语句,典型操作(grant\deny\revoke)。

MYSQL目前属于甲骨文公司旗下的产品。MYSQL是开源型、免费的、小型关系型数据库管理系统,是单进程、多线程、支持多用户,基于C/S的关系型数据库管理系统。

Centos7已经使用了mariadb替代了默认的Mysql,它是mysql的一个分支,主要是由开源社区来进行维护,完全兼容了Mysql。

[root@controller ~]# rpm -qa|grep mariadb

mariadb-libs-10.3.20-3.el7.0.0.rdo1.x86_64

mariadb-10.3.20-3.el7.0.0.rdo1.x86_64

mariadb-config-10.3.20-3.el7.0.0.rdo1.x86_64

mariadb-server-10.3.20-3.el7.0.0.rdo1.x86_64

mariadb-common-10.3.20-3.el7.0.0.rdo1.x86_64

mariadb-errmsg-10.3.20-3.el7.0.0.rdo1.x86_64

字符集,是系统支持多个字符的集合。常见的字符集ASCII、GBK等。

1.添加数据库的字符集

[root@controller ~]# vi /etc/my.cnf.d/mariadb-server.cnf

//找到[mysqld]字段

[mysqld]

character-set-server=utf8

character-set-server=utf8

collation-server=utf8

skip-character-set-client-handshake

init_connect=”SET collation_connection = utf_unicode_ci”

注意:如果在/etc/my.cnf.d/中没有mariadb-server.conf文件,我们可以去编辑/etc/my.cnf,并在[mysqld]字段下添加字符集内容。

[root@controller ~]# vi /etc/my.cnf.d/mysql-clients.cnf

[client]          //如果没有client字段自行添加

default-character-set=utf8

[root@controller ~]# systemctl  restart mariadb

[root@controller ~]# mysql -uroot -p000000

MariaDB [(none)]> show variables like "%character%";show variables like "%collation%";

+--------------------------+------------------------------+

| Variable_name            | Value                        |

+--------------------------+------------------------------+

| character_set_client     | utf8                         |

| character_set_connection | utf8                         |

| character_set_database   | utf8                         |

| character_set_filesystem | binary                       |

| character_set_results    | utf8                         |

| character_set_server     | utf8                         |

| character_set_system     | utf8                         |

| character_sets_dir       | /usr/share/mariadb/charsets/ |

+--------------------------+------------------------------+

8 rows in set (0.103 sec)

+----------------------+-----------------+

| Variable_name        | Value           |

+----------------------+-----------------+

| collation_connection | utf8_general_ci |

| collation_database   | utf8_general_ci |

| collation_server     | utf8_general_ci |

+----------------------+-----------------+

3 rows in set (0.001 sec)

  1. MySQL在OpenStack中的作用

Openstack中除了dashboard之外,都需要用到数据库环境,在搭建Openstack时系统会为每一个项目创建一个单独的数据库,包括一些独立的用户名和密码,各数据库之间没有任何联系,所以数据库服务是Openstack的基础公共组件。

(1)用户的管理

[root@controller ~]# mysql -uroot -p000000

MariaDB [(none)]> create user test@'localhost' identified by 'password';   //直接创建用户

MariaDB [(none)]> grant all on *.* to test1@'localhost' identified by 'password';   //直接创建一个用户test1并授权

MariaDB [(none)]> grant all on *.* to test2@'%' identified by 'password';   //创建用户test2,并且授予用户test2远程登陆权限

MariaDB [(none)]> grant all on *.* to test3@'localhost' identified by 'password' with grant option; //创建用户test3,授予用户超级管理员权限,此用户可以授权给其他的用户

[root@controller ~]# mysql -uroot -p000000

MariaDB [(none)]> select user();        //查看当前登录的用户

+----------------+

| user()         |

+----------------+

| root@localhost |

+----------------+

MariaDB [(none)]> drop database [DB Name];      //删除数据库

MariaDB [(none)]> show grants for 'test2'@'%';  //查询test2用户的远程访问权限

+---------------------------------------------------------------------------------------------------------------+

| Grants for test2@%                                                                                            |

+---------------------------------------------------------------------------------------------------------------+

 GRANT ALL PRIVILEGES ON *.* TO 'test2'@'%' IDENTIFIED BY PASSWORD '*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19' |

+---------------------------------------------------------------------------------------------------------------+

MariaDB [(none)]> revoke all on *.* from  test2@'%';         //回收test2用户的所有权限

Query OK, 0 rows affected (0.000 sec)

3.表的基本操作

主要包括对表的增、删、改、查

(1)对表的增操作

添加一些数据。为表中所有的字段添加数据,语法:

INSERT INTO 表名(字段名1,字段名2,....)VALUES(值1,值2,......)

例: INSERT INTO user(host,user)values(“localhost”,”test”);

(2)对于表的删除操作

删除数据。语法:DELETE FROM 表名 WHERE条件表达式

删除部分数据:删除指定的部分数据,需要使用WHERE的字句来指定删除记录的条件。

举例:删除上一步骤向user表中插入的含test的一行记录

DELETE FROM user where user=”test”;

删除全部的数据:如果DELETE语句中没有使用WHERE的语句,则将会对表中所有的记录全部删除。语法:DELETE FROM 表名

(3)对于数据表的改操作

所谓的数据表的改操作,实际上就是对于数据表的更新.

语法:UPDATE 表名 SET 字段名1=值1,字段名2=值2,WHERE条件表达式

举例:将user表中user值为test的记录,将其host字段的值改为”%”

UPDATE user SET host=”%” WHERE user=”test”;

(4)对于数据表的查操作

数据的查询.SELECT语句是MYSQL中最基本的语句,主要的作用在与查询表中的数据.

语法1:SELECT 列名称 FROM表名称,作用:查询指定数据表中的指定字段.

语法2:SELECT * FROM 表名称,作用查询指定数据表中的所有字段.

4.数据库的其他常规操作

(1)查询系统当前的时间

MariaDB [(none)]> select now();

+---------------------+

| now()               |

+---------------------+

| 2022-10-13 03:04:35 |

+---------------------+

MariaDB [(none)]> select sysdate();

+---------------------+

| sysdate()           |

+---------------------+

| 2022-10-13 03:05:07 |

+---------------------+

(2)查看MySQL的默认的存储引擎信息

MariaDB [(none)]> show variables like "storage_engine";

+----------------+--------+

| Variable_name  | Value  |

+----------------+--------+

| storage_engine | InnoDB |

+----------------+--------+

(3)查看MySQL支持的存储引擎

MariaDB [(none)]> show variables like "have%";

+----------------------+----------+

| Variable_name        | Value    |

+----------------------+----------+

| have_compress        | YES      |

| have_crypt           | YES      |

| have_dynamic_loading | YES      |

| have_geometry        | YES      |

| have_openssl         | YES      |

| have_profiling       | YES      |

| have_query_cache     | YES      |

| have_rtree_keys      | YES      |

| have_ssl             | DISABLED |

| have_symlink         | DISABLED |

+----------------------+----------+

MongoDB数据库

是C++语言编写的,基于分布式文件存储的开源的数据库系统.它跟MYSQL的区别在于,Mongodb中的一条记录就是一个文档,是一个数据结构,这个数据结构是由字段和值对组成的.它的文档与JSON对象比较类似.字段的值有可能包含其他文档,数组以及文档数组.

特性:易用性,易扩展性,除了扩展之外的独特功能,性能

(1)易用性

Mongodb是一个面向文档的数据库,而不是关系型数据库,不采用关系型的原因在于能够获得更好的扩展性..

(2)易扩展性

在目前的带宽增长和存储器价格下降的背景下,需要存储的数据量很大,甚至铲除了很多数据库的处理能力.由于需要存储的数据量不断增长,管理人员会面临一个问题:应该如何去扩展数据库,两大类的数据库扩展方式(横向扩展和纵向扩展).mongodb则采用了横向扩展,内置的面向文档的数据模型使它很容易的在多台服务器之间进行数据分割,它能够自动的处理跨集群的数据和负载,自动重新分配文档,将用户的请求路由到正确的机器上.

(3)独特的功能

除了能够创建\读取\更新和删除数据之外,它提供了不断扩展的功能.

索引\聚合\特殊的集合类型\文件存储

(4)性能

最大的目标就是提供卓越的性能,mongodb把尽可能多的内存用作缓存,视图为每次查询自动选择正确的索引,总而言之各方面的设计都在保持高性能.

使用场景:网站数据\缓存\大尺寸,低价值的数据\高伸缩的场景\用于对象以及JSON数据的存储.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
OpenStack 由多个组件组成,每个组件都有不同的功能和用途。以下是 OpenStack 各个组件的规划: 1. Nova:Nova 是 OpenStack 的计算服务组件,用于管理和调度计算资源。它可以创建、启动、停止和删除虚拟机,并提供了 API 和 CLI 接口。 2. Neutron:Neutron 是 OpenStack 的网络服务组件,用于管理和配置网络资源。它提供了虚拟网络的创建、子网的配置、路由器的管理等功能。 3. Cinder:Cinder 是 OpenStack 的块存储服务组件,用于管理和分配块存储资源。它提供了卷的创建、快照的管理、卷的扩展等功能。 4. Swift:Swift 是 OpenStack 的对象存储服务组件,用于管理和存储对象数据。它提供了高可用性、可扩展性、数据冗余和数据保护等功能。 5. Keystone:Keystone 是 OpenStack 的身份认证服务组件,用于管理和验证用户身份和访问权限。它提供了用户认证、角色管理、服务目录等功能。 6. Glance:Glance 是 OpenStack 的镜像服务组件,用于管理和存储虚拟机镜像。它提供了镜像的上传、下载、分享、删除等功能。 7. Horizon:Horizon 是 OpenStack 的 Web 用户界面组件,用于管理和监控 OpenStack 环境。它提供了虚拟机的创建、网络的配置、镜像的管理等功能。 8. Heat:Heat 是 OpenStack 的编排服务组件,用于管理和自动化部署应用程序。它提供了模板化服务、自动扩展、自动修复等功能。 9. Trove:Trove 是 OpenStack 的数据库服务组件,用于管理和部署数据库服务。它提供了 MySQL、PostgreSQL、MongoDB 等数据库的管理和配置。 10. Ceilometer:Ceilometer 是 OpenStack 的监控服务组件,用于收集和分析 OpenStack 环境的指标数据。它提供了虚拟机、网络、存储等资源的监控和分析。 11. Manila:Manila 是 OpenStack 的共享文件系统服务组件,用于管理和共享文件系统资源。它提供了共享文件系统的创建、挂载、卸载等功能。 12. Magnum:Magnum 是 OpenStack 的容器服务组件,用于管理和部署容器化应用程序。它提供了容器引擎的管理、容器集群的创建、容器编排等功能。 13. Zun:Zun 是 OpenStack 的容器编排服务组件,用于管理和自动化部署容器化应用程序。它提供了容器的管理和调度、容器编排等功能。 以上是 OpenStack 中常见的组件和规划,但随着 OpenStack 社区的不断发展,可能会出现新的组件和功能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值