MySQL数据库(一):数据库介绍与安装

        在嵌入式开发中,数据库的重要性体现在高效的数据存储和管理、数据持久化、复杂查询和处理、数据同步和共享、安全性和可扩展性。常见嵌入式数据库包括SQLite、MySQL、LevelDB等,应用于智能家居、工业控制、车载系统和物联网设备,提升了系统功能和开发效率。这个专栏我们共同来学习MySQL数据库。

目录

一、数据库介绍

1.1  数据库概念

 1.1.1 通俗理解  

1.1.2网络通信的角度理解

1.1.3  形象的理解数据库

1.2 数据库分类

 1.2.1 关系型数据库

1.2.2 非关系型数据库(nosql)

二、mysql安装及设置

2.1 安装mysql

2.2  用户管理

2.3 用户授权

2.4 删除用户

2.5 数据库服务启动停止

2.5.1 检查服务器状态

2.5.2 数据库重启|停止|启动

2.5.3 连接数据库

2.6 配置文件位置


一、数据库介绍

1.1  数据库概念

 1.1.1 通俗理解  

         数据库 :它就是存放数据的仓库,实际上它就是一个存数据的文件 ,并且是可以持久化存储的,是存在磁盘上的,但这个文件不能由我们直接操作,因此又提供了一个数据库管理系统,因此,我们平时所说的数据库既包含了存储数据的文件,又包含了一个管理和操作这个文件的一个系统,这个系统称之为数据库管理系统,因此,我们平时说的数据库是存放数据的文件和数据库管理系统之和, 数据库是一个按数据结构来存储和管理数据的计算机软件系统。数据库管理系统是数据库的核心组成部分,主要完成对数据库的操作与管理功能,例如实现数据的存储,查询,修改,删除,及数据库用户的管理,权限管理等。

1.1.2网络通信的角度理解

       数据库是一个c/s结构,包含服务器端和客户端,我们在安装的时候(apt install mysql-server)安装的是服务器端,其实它自己默认也会安装客户端,目前的数据库都是CS结构,数据库的服务器端和客户端是通过tcp连接的,mysql的端口是3306。(面试问题)IP地址根据部署来决定。如下图所示:

1.1.3  形象的理解数据库

        我们可以把mysql可以理解为一个大仓库,里面的一个个小仓库是存放数据的,但数据在小仓库实际是放在表(货架)里面的,每个小数据库里的表(货架)可能是一个也可能有许多,根据实际要存放的数据来看。因此,我们在需要存放数据的时候,首先登陆数据库(用户名和密码),然后创建一个数据库,将数据库存在在创建的数据库的表里面的。因此,存在一个操作叫做创建数据库和创建表。mysql里面有用户管理模块,可以创建用户,修改密码,mysql的管理员是:root,这个只是跟我们linux系统管理员名相同,不是同一个。如下图所示:

       mysql数据库是一种C/S模型(即客户端和服务端模型),客户单通过用户名,密码登录连接服务器。连接成功后才可以进行数据库的操作(增删改查)。如下图:

  1. RDBMS : 关系数据库管理系统(Relational Database Management System)。
  2. SQL : 结构化查询语言(Structured Query Language).

1.2 数据库分类

 1.2.1 关系型数据库

        指采用了关系模型来组织数据的数据库,关系模型就是指二维表格模型,每一列的数据属性都相同 。而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。 关系型数据库核心元素:数据行(一条记录),数据列(字段), 数据表(数据行的集合),数据库(数据表的集合)

关系型数据库产品: oracle , mysql, sqlite ,DB2, Microsoft Sql Server

1.2.2 非关系型数据库(nosql)

        指非关系型的,分布式的,且一般不保证遵循ACID原则的数据存储系统。非关系型数据库以键值对存储,且结构不固定。(ACID,指原子性,一致性,隔离性,持久性).。

非关系型数据库产品: memcache , redis , mongodb, hbase

二、mysql安装及设置

    这里介绍ubuntu发行版本上使用apt命令安装的步骤。不同发行版本安装方法有所不同。

2.1 安装mysql

       安装前首先切换到管理员身份:sudo su ,然后再执行 apt install mysql-server 安装。

首次登录需要以Linux系统管理员身份运行mysql客户端,以mysql管理员root的身份登录。如下所示:

2.2  用户管理

      查看当前数据库的所有用户信息:

      

       在创建用户之前,我们先修改mysql管理员root的密码,如下所示:

 注意:

       远程连接mysql数据库,必须要在数据库所在的服务器创建远程登陆的用户root账号,否则远程无法连接数据库!!因此,创建用户的时候决定了是该用户本地登录还是远程登录!!!因此,用户可以同名,但是它们的登录方式不同。如下所示:

         这两个root是不一样的,一个是本地登录,一个是远程登陆,如果你设置的两个密码不一样,你要是用同一个密码连接,绝对有一个连不上!localhost 本地登录,% 远程登陆

创建用户需要指定该用户为本地登录还是远程登陆。

       然后退出数据库,执行:exit或者quit。 普通的Linux用户身份,客户端以mysql管理员身份连接数据库如下:

此时,mysql的管理员身份就正式修改成功了!当然,我们也可以创建其他mysql普通用户,如下所示:

当然,我们也可以创建远程登陆的stu1用户,这样就可以在远程使用这个用户来连接我们的mysql数据库服务器,如下所示:

2.3 用户授权

     在我们创建一个用户后,就需要授权用户对哪些数据库的哪些表可以进行操作,就好比工厂招到工人,指定他负责哪一块区域,这就是用户授权。示例如下

2.4 删除用户

2.5 数据库服务启动停止

2.5.1 检查服务器状态

       检查数据库的状态,Linux普通用户和管理员用户都可以查看,命令如下:

2.5.2 数据库重启|停止|启动

     这几个操作都必须需要在Linux系统下的管理员身份运行,命令如下:

2.5.3 连接数据库

      连接数据库,就是连接数据库服务器,可以以数据库所在的服务器进行本地连接,也可以远程连接命令如下:

数据库也是服务器和客户端CS结构,但它与普通的服务器客户端连接存在区别:

       它与普通的服务器客户端连接区别就在于,数据库在远程连接的时候,必须要在数据库所在的服务器端创建远程连接用户,也就可以理解将这个用户存在数据库中,这样它才会认可这个用户,在登陆连接的时候,输入密码才认可,才会连接成功,这样设计是为了保证数据库的安全。而一般的服务器客户端不需要,只需要指定IP地址和端口就能连接。

2.6 配置文件位置

       配置文件在如下位置,需要修改可以用vi打开更改

至此,数据库第一节就已经介绍完毕,感谢大家的阅读,更多精彩内容见后期,下期再见!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/858295.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于 pnpm monorepo 项目中 TS2742 Error 的 workaround

最近我在使用 pnpm 作为包管理器开发一个 monorepo 项目,从个人体验来说,在 monorepo 项目中,pnpm 确实要比 yarn classic 用得舒心,最让我欣喜的是 pnpm 对 workspace 协议的支持度很好;另外感受比较明显的一点就是&a…

Nginx+Lua+Redis 实现Nginx301跳转配置管理

业务场景需求 long long ago: 在项目的运维过程中有一次SEO团队提出 网页的URL 中如果可以带上关键字,那么网页在各大搜索引擎中收录和排名有非常重大的突出优势(~~SEO团队到底专不专业 ~~,此处不做置评),…

超详细!想进华为od的请疯狂看我!

三分钟带你全面了解华为OD 【合同及管理】签约方为科锐国际/外企德科(人力服务公司),劳动合同期为4年,试用期6个月。员工关系合同管理、五险一金、考勤发薪由科锐国际/外企德科负责;定级定薪、员工培训、工作安排、绩…

vuex的配置主要内容

1、state 作用:负责存储数据; 2、getters 作用:state计算属性(有缓存); 3、mutaions 作用:负责同步更新state数据 mutaions是唯一可以修改state数据的方式; 4、actions 作用:负责异步操作&a…

mysql数据库入门手册

数据库 常见的数据库查看当前用户及其权限创建用户授权用户访问数据库撤销用户权限修改用户密码删除用户增创建一个数据库创建表表中插入数据表中添加字段(三种方式) 删删除表记录删除表字段删除表(三种方式)删除数据库 改修改表名…

学生课程信息管理系统

摘 要 目前,随着科学经济的不断发展,高校规模不断扩大,所招收的学生人数越来越 多;所开设的课程也越来越多。随之而来的是高校需要管理更多的事务。对于日益增 长的学生相关专业的课程也在不断增多,高校对其管理具有一…

Linux Kernel入门到精通系列讲解(RV-Kernel 篇) 5.6 在kernel 中实现系统复位和系统关机驱动

1. 概述 上一章节Qemu篇我们已经实现了我们SOC的power reset和 power down 寄存器,本章节我们就在Linux driver中去实现它。 2. Linux kernel 访问其他节点 Linux kernel中有一种机制,就是在driver中访问其它设备树节点的信息,了解设备树的应该都知道,每个设备节点都有一…

【java问答小知识19】一些Java基础的知识,用于想学习Java的小伙伴们建立一些简单的认知以及已经有经验的小伙伴的复习知识点

Java中的"java.util.concurrent.locks.StampedLock"的"tryConvertToReadLock()"方法如何工作? 回答:尝试将当前的写锁转换为读锁,并返回一个表示锁定状态的戳记。 Java中的"java.util.concurrent.locks.StampedLock…

计算机网络:应用层 - 万维网 HTTP协议

计算机网络:应用层 - 万维网 & HTTP协议 万维网 WWW统一资源定位符 URL 超文本传输协议 HTTP非持续连接持续连接非流水线流水线 代理服务器HTTP报文 万维网 WWW 万维网是一个大规模的、联机式的信息储藏所。万维网用链接的方法能非常方便地从互联网上的一个站点…

通信系统网络架构_4.存储网络架构

1.计算机访问磁盘存储有3种方式 一般来说,计算机访问磁盘存储有3种方式: (1)直连式存储(Direct Attached Storage,DAS):计算机通过I/O端口直接访问存储设备的方式。 (…

路由

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 客户端(例如浏览器)把请求发送给 Web 服务器,Web 服务器再把请求发送给 Flask程序实例。程序实例需要知道对每个U…

Kafka 最佳实践:构建高性能、可靠的数据管道

目录 1. 部署最佳实践 1.1 硬件配置 1.2 集群配置 1.3 ZooKeeper 配置 2. 主题和分区设计 2.1 分区设计 2.2 数据保留策略 3. 生产者最佳实践 3.1 生产确认机制 3.2 重试机制 3.3 批量发送 4. 消费者最佳实践 4.1 消费组管理 4.2 并行处理 4.3 错误处理 5. 安全…

昇思25天学习打卡营第5天|网络构建

一、简介: 神经网络模型是由神经网络层和Tensor操作构成的,mindspore.nn提供了常见神经网络层的实现,在MindSpore中,Cell类是构建所有网络的基类(这个类和pytorch中的modul类是一样的作用),也是…

std::bind与std::ref配合使用时要注意的几个问题

目录 1 假如输入函数的变量是左值非常量引用,则该变量在std::bind中只能用std::ref修饰,不能用cref,否则编译失败: 2 假如输入函数的变量是左值常量引用,则该变量在std::bind中既可以用std::ref修饰,也可…

Mathtype7在Word2016中闪退(安装过6)

安装教程:https://blog.csdn.net/Little_pudding10/article/details/135465291 Mathtype7在Word2016中闪退是因为安装过Mathtype6,MathPage.wll和MathType Comm***.dotm),不会随着Mathtype的删除自动删除,而新版的Mathtype中的文件…

Inpaint软件最新版下载【安装详细图文教程】

​根据使用者情况表明在今天的数字时代,我们经常会遇到需要处理图形的情况,然而,当我们遇到水印在图形上,我们就需要寻找一个有效的方式来去除它,Inpaint软件就是一个非常实用的工具,它能够帮助我们去除水印…

小柴带你学AutoSar系列一、基础知识篇(6)车规级MCU入门RH850

flechazohttps://www.zhihu.com/people/jiu_sheng 小柴带你学AutoSar总目录https://blog.csdn.net/qiansh

自动化开发任务:在PHP框架中实现自定义命令

在现代Web开发中,自动化是提高开发效率和减少重复工作的关键。PHP框架,如Laravel、Symfony等,提供了强大的自定义命令功能,允许开发者创建自己的artisan命令来执行各种自动化任务。本文将详细介绍如何在PHP框架中实现自定义命令&a…

【web2】jquary,bootstrap,vue

文章目录 1.jquary:选择器1.1 jquery框架引入:$("mydiv") 当成id选择器1.2 jquery版本/对象:$(js对象) -> jquery对象1.3 jquery的页面加载事件:$ 想象成 window.onload 1.4 jquery的基本选择器:$()里内容…

GIM: Learning Generalizable Image Matcher From Internet Videos

【引用格式】:Shen X, Yin W, Mller M, et al. GIM: Learning Generalizable Image Matcher From Internet Videos[C]//The Twelfth International Conference on Learning Representations. 2023. 【网址】:https://arxiv.org/pdf/2402.11095 【开源代…