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模型(即客户端和服务端模型),客户单通过用户名,密码登录连接服务器。连接成功后才可以进行数据库的操作(增删改查)。如下图:
- RDBMS : 关系数据库管理系统(Relational Database Management System)。
- 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打开更改
至此,数据库第一节就已经介绍完毕,感谢大家的阅读,更多精彩内容见后期,下期再见!
相关文章:

MySQL数据库(一):数据库介绍与安装
在嵌入式开发中,数据库的重要性体现在高效的数据存储和管理、数据持久化、复杂查询和处理、数据同步和共享、安全性和可扩展性。常见嵌入式数据库包括SQLite、MySQL、LevelDB等,应用于智能家居、工业控制、车载系统和物联网设备,提升了系统功…...

天津媒体邀约,及媒体名单?
传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 媒体宣传加速季,100万补贴享不停,一手媒体资源,全国100城线下落地执行。详情请联系胡老师。 天津作为中国北方的重要城市,拥有丰富的媒体资…...

Java | Leetcode Java题解之第168题Excel表列名称
题目: 题解: class Solution {public String convertToTitle(int columnNumber) {StringBuffer sb new StringBuffer();while (columnNumber ! 0) {columnNumber--;sb.append((char)(columnNumber % 26 A));columnNumber / 26;}return sb.reverse().t…...

代码随想录算法训练营刷题复习10:二叉树、二叉搜索树复习2
二叉树、二叉搜索树 力扣题复习 110. 平衡二叉树257. 二叉树的所有路径404. 左叶子之和513. 找树左下角的值112.路径之和113.路经总和ii450. 删除二叉搜索树中的节点701. 二叉搜索树中的插入操作 110. 平衡二叉树 左右子树高度差要小于1 ->递归调用(need新的函…...

预测准确率达95.7%,ChatMOF利用LLM预测和生成金属有机框架,包含人工智能词汇表(AI glossary)
预测准确率达95.7%,ChatMOF利用LLM预测和生成金属有机框架,包含人工智能词汇表(AI glossary)。 金属有机框架(MOF)因其孔隙率大、表面积大和出色的可调性而用于许多化学应用。然而,在利用 AI 深入探索 MOF 设计与性能优化的研究征途中,科学家们正面临着前所未有的挑战。…...

【Linux】环境基础开发工具使用(yum、vim、gcc/g++、gdb、make/Makefile)
文章目录 Linux 软件包管理器 yumLinux开发工具Linux编辑器-vim使用vim的基本概念vim下各模式的切换vim命令模式各命令汇总vim底行模式各命令汇总批量化注释和批量化去注释vim简单的配置解决一个小问题 Linux编译器-gcc/g作用gcc/g 语法预处理编译汇编链接什么是函数库 Linux调…...

Linux基础二
目录 一,tail查看文件尾部指令 二,date显示日期指令 三,cal查看日历指令 四,find搜索指令 五,grep 查找指令 六,> 和>> 重定向输出指令 七, | 管道指令 八,&&逻辑控…...

Linux运维面试--yum安装和编译安装区别
风吹哪页读哪页,花开何时看何时。 目录 # 1.安装方式差异 ## 1.1 yum安装 ## 1.2 源码编译安装 # 2.优缺点分析 ## 2.1 yum安装优缺点 ### 2.1.1 yum安装优点 ### 2.1.2 yum安装缺点 ## 2.2 源码安装优缺点 ### 2.2.1 源码安装优点 ### 2.2.2 源码安装缺点…...

redis 的内存尽量不要超过 10g,超过 10g 可能会有问题
在使用Redis时,内存大小的限制通常取决于多种因素,包括但不限于: 1. **物理内存**:服务器的总内存大小限制了Redis可以使用的最大内存。 2. **操作系统限制**:操作系统可能对单个进程可以使用的内存有限制。 3. **Red…...

力扣(2024.06.23)
1. 62——不同路径 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径&a…...

OpenCV颜色检测
OpenCV颜色检测 前言策略分析根据颜色检测目标对象相关链接 前言 绿幕技术是一种经典的视频编辑技术,可以用于将人物置于不同的背景中。例如在电影制作中,技术的关键在于演员不能身着特定颜色的衣服(比如绿色),站在只有绿色的背景前。然后&a…...

VScode开发ARM环境搭建
1. vscode安装 直接访问官网: Visual Studio Code - Code Editing. Redefined 2. 安装插件 2.1. 安装Embedded IDE 2.2. 安装Cortex-debug 3. 工程初始化 3.1. 导入现有工程(推荐) 3.2. 或可创建新的工程 3.2.1. 选择Cortex-M项目 指定项目名称&…...

AI-人工智能指数报告(四):科学、医学与教育
背景: 从2017年开始,斯坦福大学人工智能研究所(HAI)每年都会发布一份人工智能的研究报告,人工智能指数报告(AII),对上一年人工智能相关的数据进行跟踪、整理、提炼并进行可视化。这份…...

Redis内存数据库
Redis是一个开源的内存数据库,它可以用作缓存、数据库和消息中间件。Redis支持多种数据结构,包括字符串、哈希表、列表、集合、有序集合等,这使得它非常灵活且适用于多种用途。 以下是关于Redis的一些重要特点和功能: 内存存储&a…...

LabVIEW高精度电能质量监测系统
LabVIEW和研华采集卡的高精度电能质量监测系统利用虚拟仪器技术,实时监测电能质量的关键指标,如三相电压、频率和谐波。通过提高监测精度和效率,改善电网的电能质量。系 一、系统背景 电能作为现代社会的关键能源,其质量直接影响…...

Java程序之可爱的小兔兔
题目: 古典问题,有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 程序分析: 兔子的规律为数列1,1,2,3,…...

▶《强化学习的数学原理》(2024春)_西湖大学赵世钰 Ch5 蒙特卡洛方法【model-based ——> model-free】
PPT 截取必要信息。 课程网站做习题。总体 MOOC 过一遍 1、视频 学堂在线 习题 2、 过 电子书 是否遗漏 【下载:本章 PDF GitHub 页面链接 】 【第二轮 才整理的,忘光了。。。又看了一遍视频】 3、 过 MOOC 习题 看 PDF 迷迷糊糊, 恍恍惚惚。…...

【linux】Valgrind工具集详解(十六):交叉编译、移植到arm(失败)
1、源码下载 官网:https://valgrind.org/ 源码:https://valgrind.org/downloads/current.html 2、配置 ./configure CC=arm-linux-gnueabihf-gcc \CXX=arm-linux-gnueabihf-g++ \AR=arm-linux-gnueabihf-ar \--host=arm-linux-gnueabihf \--pr...

前端面试题(七)答案版
面试形式:线下面试:时长20分钟 特殊要求:996加班30k上限 面试评价:技术题 面试官:前端技术人员 面试官的提问大纲:本公司招聘要求本人简历 面试流程以及面试题: 第一个环节:自…...

为微信小程序项目添加eslint
背景 在使用vscode开发微信小程序的过程中,修改js的时候发现没有报错提示,让我很不习惯,所以想为微信小程序项目添加eslint配置 编码实战 为微信小程序配置ESLint可以遵循以下步骤: 安装ESLint及其相关插件 首先,…...

Win10用户必看:最好用最稳定的版本在此,值得一试!
在Win10电脑操作中,用户可以根据的需要,下载安装不同的系统版本。现在,许多用户好奇Win10哪个版本最好用最稳定?接下来小编给大家推荐最好用最稳定的Win10版本,这些系统版本经过优化升级,相信会给大家带来最…...

处理文本内容的命令和正则表达式
处理文本内容的命令 正则表达式匹配的是文本内容,linux的文本三剑客 都是针对文本内容 文本三剑客: grep 过滤文本内容 sed 针对文本内容进行增删改查 awk 按行取列 文本三剑客都是按行进行匹配。 grep grep的作用就是使用正则表达式来匹配文本内…...

AI与音乐:当技术与艺术发生冲突
AI在创造还是毁掉音乐? 在科技日新月异的今天,人工智能(AI)已经渗透到了我们生活的方方面面,音乐领域也不例外。然而,尽管AI为音乐创作带来了前所未有的便利,我却深感其正在毁掉音乐的本质。 …...

java泛型学习
没有java泛型会存在的问题 假设我们有一个方法,希望通过传递不同类型的参数,输出不同类型的对象值。正常情况下我们可能会写不同的方法来实现,但是这样会导致类不断增加,并且类方法很相似,不能够复用。进而导致类爆炸…...

vscode c++ 开发环境配置
今天各位同学已经安装了mingw环境,但部分同学vscode开发环境又问题,究其原因,还是vscode 编译环境配置错误,有问题的同学 按如下步骤处理: 1、卸载相关插件。按下列步骤重新安装插件。 2、继续在搜索框中搜索并安装 C…...

PHP安装配置
文章目录 1.下载PHP2.配置环境变量3.Apache安装配置 1.下载PHP PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法…...

std::vector<>的{}用法与stl中的共享指针
讨论 std::vector<>的{}用法比较方便,在stl中的共享指针中是否适用? 代码 #include <iostream> #include <memory> #include <vector> using namespace std;int main() {vector<int> vt1({1,3,5});vec…...

《FFmpeg开发实战:从零基础到短视频上线》资源下载和内容勘误
资源下载 下面是《FFmpeg开发实战:从零基础到短视频上线》一书用到的工具和代码资源: 1、本书使用的FFmpeg版本为FFmpeg 5.1.2,也可在FFmpeg的github主页上下载最新的FFmpeg源码。 2、本书第12章使用的Android Studio版本为Android Studio D…...

OpenCV目标识别
一 图像轮廓 具有相同颜色或强度的连续点的曲线。 图像轮廓的作用 可以用于图像分析 物体的识别与检测 注意 为了检测的准确性,需要先对图像进行二值化或Canny操作。 画轮廓时会修改输入的图像。 轮廓查找的API findContours(img,mode,ApproximationMode,...)…...
密码学及其应用——为什么选择接近的质数因子对RSA加密算法不安全?
RSA加密算法是一种广泛使用的非对称加密算法,它的安全性依赖于大整数分解的难度。具体来说,RSA算法生成的公钥包含一个大整数N,这是两个大质数p和q的乘积。然而,如果这两个质数p和q太接近,则可以相对容易地对N进行因式…...