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个月。员工关系合同管理、五险一金、考勤发薪由科锐国际/外企德科负责;定级定薪、员工培训、工作安排、绩…

学生课程信息管理系统

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

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

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

路由

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

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

【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 【开源代…

Linux_软硬链接

目录 1、软链接 2、软链接的使用方式 3、软链接的删除 4、硬链接 5、硬链接的使用方式 6、软硬链接的使用场景 7、软硬链接的区别 结语 前言: 在Linux操作系统中,有软链接和硬链接,他们是一种特殊的文件引用,主要用于与…

Cyber Weekly #12

赛博新闻 1、Anthropic发布Claude 3.5 Sonnet 本周五(6月21日)凌晨,Anthropic宣布推出其最新的语言模型Claude 3.5 Sonnet,距离上次发布Claude3才过去3个月。Claude3.5拥有20万token的长上下文窗口,目前已经在Claude…

HCIA 19 结束 企业总部-分支综合实验(下)

3.6出口NAT配置可以访问互联网 配置NAT使内网可以访问公网8.8.8.8,当前总部PC1 PING不通公网地址8.8.8.8。 3.6.1总部配置NAT访问互联网 步骤1:配置NAT acl number 2000 rule 5 permit source 192.168.0.0 0.0.255.255 # interface GigabitEthern…

Redis预备知识

一.预备知识 1.基本全局命令 set key value 将key的值设置成value get key 得到key的值 keys [pattern] 查看匹配pattern的所有key 比如h?llo匹配hallo,hbllo,hcllo……只要用一个符号将?代替即可 比如h*llo匹配hllo,heeeello…

【图像识别系统】昆虫识别Python+卷积神经网络算法+人工智能+深度学习+机器学习+TensorFlow+ResNet50

一、介绍 昆虫识别系统,使用Python作为主要开发语言。通过TensorFlow搭建ResNet50卷积神经网络算法(CNN)模型。通过对10种常见的昆虫图片数据集(‘蜜蜂’, ‘甲虫’, ‘蝴蝶’, ‘蝉’, ‘蜻蜓’, ‘蚱蜢’, ‘蛾’, ‘蝎子’, ‘…

02_ESP32+MicroPython 点亮LED灯

书接第1篇《01_ESP32 MicroPython开发环境搭建_eps32开发板-CSDN博客》 想要让一个引脚输出高电平,只需要找到对应的GPIO然后通过on()或者value(1)操作就可以,同理如果想要输出低电平让LED灯灭,只需要调用off()或者value(0)就行。 一、点亮…

【ACM出版】2024人工智能与自然语言处理国际学术会议(AINLP 2024,7月19-21)

2024人工智能与自然语言处理国际学术会议(AINLP 2024)将于2024年7月19-21日在中国珠海召开,该会议作为第四届人工智能、自动化与高性能计算国际会议(AIAHPC 2024)分会场召开。 本次会议主要围绕“人工智能与自然语言处…