Linux下数据库mariaDB的管理

    xiaoxiao2022-07-13  142

    一、何为数据库?

    数据库是以表格形式保存数据的特定结构。 支持通过基于表格结构的数据流的软件称为数据库管理系统(DBMS)。使用最广泛的数据库管理系(DBMS)是关系数据库管理系统(RDBMS)。数据库管理系统(DBMS)是一种计算机软件应用程序,可与终端用户,其他应用程序和数据库本身交互以捕获数据。通用数据库管理系统允许定义,创建,查询,更新和管理数据库。

    数据库及其数据的功能是:

    数据定义创建,修改和删除为数据组织奠定基础的定义数据更新插入,修改和删除数据检索通过进行特定查询从整个数据库检索数据管理用户创建和修改,数据安全性,性能监控,数据完整性,并发控制和数据恢复

    因此,数据库系统是数据库模型,数据库管理系统(DBMS)和数据库的组合。

    二、MariaDB和MySQL的比较

    1. 概念: MySQL:

    MySQL是一个用C和C ++编写的开源多线程关系数据库管理,适用于任务关键型,重载生产系统以及嵌入大规模部署的软件。它被认为是LAMP栈(Linux,Apache,MySQL和PHP)的核心组件。MySQL数据库适用于Linux,Windows,MAC,BSD,UNIX等各种操作系统平台。 MySQL现在是Oracle公司以及其附属公司拥有的商标,并且是双重许可。用户可以选择GNU许可作为开源软件使用,甚至可以购买有Oracle许可证的商业软件。

    MySQL体系结构: MySQL服务器基于分层架构,由主要子系统和支持组件组成,它们通过相互交互来读取,解析和执行查询以返回结果。 MySQL的五种主要子系统是:查询引擎、 存储管理器、缓冲管理器、事务管理器、恢复管理器 MySQL的两个支持组件是:进程管理、函数库

    MariaDB:

    MariaDB数据库管理系统是MySQL的一个分支 ,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险,MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。 MariaDB由MySQL的创始人麦克尔·维德纽斯主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。

    2. 特点:

    MySQL的特点:

    关系数据库管理系统: MySQL支持所有功能,这使得它成为一个完整的关系数据库管理系统(RDBMS)。它支持完整的SQL作为查询和更新数据的标准化语言,并且可以管理数据库。 简单而安全: 与其他数据库管理系统(DBMS)软件相比,MySQL使用非常简单且具有交互性,并且具有可靠的数据安全层,可为数据提供高效的加密,因此非常安全。 客户机/服务器体系结构: 其简单的客户机/服务器体系结构可帮助终端用户创建一个与许多客户机连接的服务器,以便与服务器进行通信进行插入,更新和管理数据库。 可伸缩性: MySQL可以处理大量数据而不会出现任何卡顿 – 多达5000万行。它可以处理高达8TB的数据而没有任何问题。 跨平台: 与几乎所有操作系统兼容,如UNIX,Windows,Linux,MAC OS X等。 高性能,灵活且高效的生产力: MySQL提供更快速,高度可靠,便宜的存储解决方案,并支持大量嵌入式应用程序。它利用触发器,程序和视图来提高生产力。

    MariaDB的特点:

    MariaDB可用于GPL,LGPL和BSD。 它包括广泛的存储引擎选择,包括高性能存储引擎,用于与其他关系数据库管理系统(RDBMS)数据源一起工作。 它使用标准和流行的查询语言。 MariaDB在许多操作系统上运行,并支持各种编程语言。 它提供对PHP的支持,PHP是最流行的Web开发语言之一。 它提供Galera群集技术。 MariaDB还提供了很多在MySQL中不可用的操作和命令,并消除/取代了对性能产生负面影响的功能。其他功能还包括多源复制,融合IO优化,表发现和联机更改表。

    3. MariaDB相对于MySQL的优缺点: 优点:

    MariaDB针对性能进行了优化,对于大型数据集,它比MySQL强大得多。从其他数据库系统可以优雅的迁移到MariaDB是另一个好处。 从MySQL切换到MariaDB相对容易,这对于系统管理员来说好像是一块蛋糕。 MariaDB通过引入微秒级精度和扩展用户统计数据提供更好的监控。 MariaDB增强了KILL命令,使您可以杀死用户的所有查询(KILL USER 用户名)或杀死查询ID(KILL QUERY ID query_id)。MariaDB也转而使用Perl兼容的正则表达式(PCRE),它提供比标准MySQL正则表达式支持更强大和更精确的查询。 MariaDB为与磁盘访问,连接操作,子查询,派生表和视图,执行控制甚至解释语句相关的查询应用了许多查询优化。 MariaDB纯粹是开源的,而不是MySQL使用的双重授权模式。一些仅适用于MySQL Enterprise客户的插件在MariaDB中具有等效的开源实现。 与MySQL相比,MariaDB支持更多的引擎(SphinxSE,Aria,FederatedX,TokuDB,Spider,ScaleDB等)。 MariaDB提供了一个用于商业用途的集群数据库,它也支持多主复制。任何人都可以自由使用它,并且不需要依赖MySQL Enterprise系统。

    缺点:

    从版本5.5.36开始,MariaDB无法迁移回MySQL。 对于MariaDB的新版本,相应的库(用于Debian)不会及时部署,由于依赖关系,这将导致必需升级到较新的版本。 MariaDB的群集版本不是很稳定。

    三、MariaDB的搭建

    实验环境: 1.为了实验的环境纯净,在搭建数据库之前,将虚拟机desktop进行reset,然后进行网络配置,网络配置如下图所示: 2. 更改主机名,如下图所示: 3. 搭建yum源,如下所示: 4. 在真机中ssh连接虚拟机,这样便于粘贴复制,连接如下所示: 实验如下:

    1搜索mariadb的安装包,并且安装,如下图所示: 2.开启服务,并进入数据库,发现可以直接进入,如下图所示: 但这种方式不安全,为了使数据库更加安全,我们需要进行以下操作: 3. 关闭接口,此时发现依然能直接进入,如下图所示: 4. 关闭端口后发现依然能直接进入数据库,但是仍然是不安全的,需要进行安全初始化,如下图所示: 5. 重新登陆数据库,如下图所示: 方法一: 此方法不安全,推荐使用第二种方式 方法二: 四、数据库管理

    1. 查询库,进入库并且查询表 2. 建立库、表以及表的结构和字段 注意:

    WHERE表示查询的行char (5)定长数据类型(必须是5个字符,不够用空格补齐)varchar(5)可变长数据类型(可以是1-5个字符),它比定长更方便

    3. 数据库的更新

    1.登陆数据库,进入westos库,并列出表,建立表userlist1,如下图所示: 2.列出表,发现创建成功,删除表,再次查看,如下所示: 3.修改userlist的表名为user_list,并添加年龄字段,如下图所示: 4.查询表中的数据,并删除年龄字段,再次添加年龄到指定的位置,如下图所示: 5.设定年龄大小,若不指定用户,则默认都添加,若指定则只添加指定的用户,如下所示: 4. 数据库的删除

    为了后面实验的进行,建议在删除数据库westos之前先将其进行备份,如下所示: 1.登陆数据库,并查看表中的内容,如下图所示: 2. 删除表中的字段信息,如下图所示: 3. 删除表和库,如下图所示: 5. 数据库的备份与恢复

    mysqldump -uroot -pwestos > /mnt/westos.sql ####将westos这个库备份到/mnt/ 备份方式: mysqldump -uroot -pwestos ####备份westos库 mysqldump -uroot -pwestos --no-data ###备份westos库的结构,不包含数据 mysqldump -uroot -pwestos --all-database ###备份westos库中所有的库 mysqldump -uroot -pwestos --all-database --no-data ###备份所有的数据库,只要结构,不要数据

    由于上面的实验可知westos库已经删除,并且备份到了/mnt/下,所以不需要再进行备份,这里不再进行备份,只需进行如下所示:

    恢复方法一: 恢复方法二:

    首先删除方法一中恢复好的库,如下所示: 具体恢复方法如下所示: 五、数据库的用户授权

    实验环境: 1.打开网络接口,如下图所示: 2. 查看端口,并关闭火墙,如下图所示: 具体实验操作如下:

    1.创建一个用户为westos1的本机登陆数据库,密码为westos,如下图所示: 2.创建一个用户为westos的任何主机登陆数据库,密码为westos,如下图所示: 测试: 1.在真机里,搜索并安装mysql,如下图所示: 在真机上登陆测试,发现本机用户登陆被拒绝,任何主机用户能登录,但是看不到库,煤油查询等权力,如下图所示: 但是在本机上,本机用户能登陆数据库,但也不能查看库,如下所示: 本机登陆用户westos1的授权 1.查看本地登陆数据库的权限,如下所示: 2.给本地用户查看的权力,如下图所示: 3.登陆本地用户发现能查看到westos库,如下所示: 4.当我们查看之后发现,又不能插入,如下所示: 5.给本地用户插入的权限,方法和查看一样,只不过将SELECT改为INSERT,如下图所示:

    GRANT INSERT on westos.* FROM westos1@localhost; ##给插入的权限

    6.登陆本地用户发现能插入内容,如下所示: 7.当能插入时,发现又不能删除,如下所示: 8. 删除本地用户的权限,如下所示: 9.此时去查看,发现如下图所示: 10.删除可以在任何主机登陆的用户和在主机上登陆的用户,如下所示: 任何主机登陆用户westos的授权

    事实上,任何主机登陆用户westos的权限和本机用户授权一样,只不过任何主机的授权需要在主机上测试,其它都是相同的,所以在此就不操作了

    六、数据库密码的修改

    方法一: 方法二: 1.查看服务状态,并关闭服务,如下所示: 2.跳过数据库安全授权,如下所示: 3.进入数据库,查看表user信息,如下所示: 4.修改密码,如下所示: 方式一:密码裸露的情况 方式二:密码加密的情况 5.查看并结束进程,如下所示: 6.开启服务,以新密码登陆测试,如下所示: 七、使用phpMyAdmin管理MySQL数据库

    实验操作如下: 1.安装http服务,如下图所示: 2.开启服务,并查看服务状态,如下图所示: 3.上传压缩包到/var/www/html的目录中,解压压缩包,并将压缩包进行重命名,如下所示: 4.进入mysqladmin包中,并查看内容,如下图所示:

    5.搜索并安装php,如下图所示: 6.重启,并查看是否连接到mysql,如下图所示: 7.复制模版,如下图所示: 8.复制Documentation中的内容到config.inc.php,如下图所示 9.重启服务,如下所示: 10.测试,在浏览器中输入172.25.254.112/mysqladmin,出现界面如下图所示: 输入帐号和密码,如下所示: 此时进入以下界面,如图所示: 利用php对数据库进行删除,如下所示: 用mysql -uroot -p查看,并建立新的用户,如下图所示: 用mysql -uroot -p查看,如下图所示:

    最新回复(0)