数据库浅识及MySQL的二进制安装

  • 数据库基础概念与MySQL二进制安装与初始化

    • 使用数据库的必要性

      • 数据库可以结构化储存大量数据信息,方便用户进行有效的检索访问

      • 有效的保持数据信息的一致性,完整性,降低数据冗余

      • 可以满足应用的共享和安全方面的要求

    • 数据库基本概念

      • 数据

        • 描述事物符号的记录称为数据,

          • 在数据库中以“记录“的形式按照统一的格式进行存储。

            • 一条记录

        • 存放数据的东西

          • 每张表存放的数据都必须是相同属性

            • 猪和石头不能在同一张表中

      • 数据库

        • 表是数据的集合,数据库是多张表的集合

      • 数据库管理系统(DBMS)

        • 从软件的层面来说

          • 例如mysql ,Oracle都是数据库管理系统

            • 具备的功能

              • 数据库的建立与维护功能

                • 建立数据库结构和数据的录入与转换,数据库的转储与恢复,数据库的重组与性能监视等。

              • 数据定义功能

                • 定义全局数据结构,局部逻辑数据结构,储存结构,保密模式,信息格式等。确保数据正确,有效与相容。

              • 数据操纵功能

                • 数据查询统计

                • 数据更新

              • 数据库的运行管理功能

                • 并发控制

                • 存取控制

                • 数据库内部维护等功能

              • 通信功能

                • 与其他的软件的通信

      • 数据库系统

        • 一个人-机系统,由各种各样的组件构成,数据库管理系统也只是其中一项·。

      • E-R图(实体-关系图)

          • 方框:实体

          • 菱形:关系

          • 椭圆:实体属性

      • 为了确保数据库的准确性,所以由”完整性约束“

        • 实体完整性

          • 要求记录在主键上不能有空值

          • 主键:不重复性决定了唯一性

            • 在一个实体中主键只能有一个

          • 外键:其它实体中的主键

            • 实体可以通过主键,外键来建立联系

        • 域完整性(列完整性)

          • 指定一个数据集对某一个列是否有效或者确定是否允许空值。

            • 例如定义性别字段只能取值为男或者女,不能是其他无效值。

              • 确保列(属性)录入的数据的正确性。

        • 引用完整性

          • 要求调用其它实体时,必须确保引用的实体的正确性。

            • 如果两个表之间相互关联,那么不允许引用不存在的记录

        • 用户自定义完整性

          • 类似于身份证,自己去规定各种属性(如数据类型,长度等。)

      • 存储引擎

        • 数据库的核心

    • 数据库发展历史

      • 1960年往后初具雏形,

        • 第一代,以层次模型和网状模型为主

        • 第二代,以关系模型为主

        • 第三代,以面向对象的模型为主,关系-对象模型。

      • 非关系数据库(nosql)

        • 例如储存日志信息

          • ”键-值“对

        • 代表产品

          • redis

          • mongodb

        • 基于内存

          • 读写速度快,断电没,适合高速处理各种大量数据

          • 通过内存数据持久化,快照机制,追加机制,集群,来解决断电没的缺点。

        • 优点

          • 高并发读写

          • 高存储效率

          • 高扩展

          • 高可用

      • 关系数据库

        • 基于硬盘,设置缓冲区,异步储存数据

        • 读写速度

          • 寄存器,缓存级,内存,固态,硬盘

        • 基本结构

          • 通常以二维表的形式储存数据

          • 数据表中的行被称为记录或者元组

          • 数据表中的列被称为属性或者字段

          • 主键

            • 数据表中具有唯一性的列的值

              • 有且只有一个

            • primary key

            • 键:关键字

          • 外键

            • 其他表的主键

    • mysql部署调试

      • MySQL优点

        • 开源免费,跨平台

        • 多线程,多用户

        • 高性能,高可靠

        • 基于c/s架构

      • 部署

        • 安装前奏

          • 检测是否安装Mariadb如果有将其卸载

          • 添加策略或关闭防火墙,临时并永久关闭内核安全机制。

          • 安装依赖环境

            • gcc

              • GNU C语言 编译器

            • libaio

              • (async)异步 (i/o)输入输出(lib)库

          • 创建程序用户

            • useradd -M -s /sbin/nologin mysql

        • 安装

          • 解压并移动重命名到常用位置/usr/local/mysql

          • 创建data目录并更改属主属组

          • 移动到bin目录下执行mysqld脚本进行初始化

            • ./mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize

              • 再次初始化需要删除data目录。需谨慎

              • 记录下初始化后的临时密码

        • 调试

          • 设定配置文件

            • [client]

              • socket=/usr/local/mysql/data/mysql.sock

            • [mysqld]

              • socket=/usr/local/mysql/data/mysql.sock

              • bind-address = 0.0.0.0

                • 监听所有网卡的IP地址,并且需要防火墙也允许

              • port = 3306

                • 监听端口

              • skip-name-resolve

                • 跳过域名解析

              • basedir=/usr/local/mysql

                • 基础目录

              • datadir=/usr/local/mysql/data

                • 数据目录

              • max_connections=2048

                • 最大连接数量

              • character-set-server=utf8

                • 默认字符集

              • default-storage-engine=INNODB

                • 默认储存引擎

              • lower_case_table_names=1

                • 启用大小写不敏感

              • max_allowed_packet=16M

                • 最大sql数据的大小

              • 忘记密码的办法

                • skip-grant-tables

                  • 跳过权限表使用空密码登录

                    • 进入MySQL系统修改完毕后再把该语句取消

            • [mysqld_safe]

              • log-error=/usr/local/mysql/data/error.log

                • 状态日志的位置,在初始化时可以将其调到mysqld中,避免忘记临时密码,事后要及时修改密码。

              • #pid-file=/var/run/mariadb/mariadb.pid

          • 设置为全局命令

            • 软链接等多种方式

          • 设置为systemd的管理

            • [Unit] Description=mysqld After=network.target [Service] Type=forking ExecStart=/etc/rc.d/init.d/mysqld start ExecReload=/etc/rc.d/init.d/mysqld reload ExecStop=/etc/rc.d/init.d/mysqld stop PrivateTmp=true [Install] WantedBy=multi-user.target

              • privateTmp

                • 启用私有临时目录,避免数据信息泄露的风险

            • 注意systemctl与service不能混用

        • 进入数据库进行测试看是否成功

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

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

相关文章

C语言经典算法题第一题

题目&#xff1a;古典问题&#xff1a;有一对兔子&#xff0c;从出生后第3个月起每个月都生一对兔子&#xff0c;小兔 子长到第三个月后每个月又生一对兔子&#xff0c;假如兔子都不死&#xff0c;问每个月的兔子总数 为多少&#xff1f; #include <stdio.h>int main() …

Swagger文档渲染,将Filter过滤器中抛出的异常错误消息返回前端显示

一、应用场景 在swagger通过/v2/api-docs获取到后端接口数据后&#xff0c;使用过滤器对/v2/api-docs请求进行拦截&#xff0c;然后对获取到的数据进行处理&#xff0c;当在处理过程中对Filter过滤器中抛出的异常错误消息进行捕获&#xff0c;并将捕获到的异常错误消息返回到前…

【SpringBoot3.x】自定义开发通用SDK

1. 前言 相信大家学习SpringBoot到现在&#xff0c;使用Maven构建项目时&#xff0c;会在pom.xml文件中引入各种各样的依赖&#xff0c;那么我们如何将自己常用的一些工具类库进行封装成starter或者SDK供其他项目使用呢&#xff0c;本博客就会带着大家一步一步创建自定义的SDK…

开源TinyFSM状态机适用于嵌入式工业平台吗?

文章目录 引言基于传统 C 实现的状态机TinyFSM 实现的对比现代 C 实现的状态机性能对比TinyFSM 性能测试传统 C 性能测试现代 C 性能测试 工业Misra C编程标准TinyFSM 的优缺点分析结论 引言 TinyFSM是一个为C设计的轻量级有限状态机开源库库。 在嵌入式系统开发中&#xff0c…

倍思突破氮化镓快充技术,为用户带来安全舒适体验

氮化镓,这个化学式为GaN的化合物,其高热稳定性和化学稳定性使其在多种极端环境中都能保持优良的性能,从而为其在电子器件领域的应用奠定了坚实的基础。 2018年前后开始,氮化镓快充充电器进入国内市场。作为第三代半导体材料的代表,氮化镓具有宽禁带的特性,其禁带宽度远大于传统…

Python连接Redis(简单连接、连接池连接、存取数据示例)

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

数据中心:AI范式下的内存挑战与机遇

在过去的十年里&#xff0c;数据中心和服务器行业经历了前所未有的扩张&#xff0c;这一进程伴随着CPU核心数量、内存带宽(BW)&#xff0c;以及存储容量的显著增长。这种超大规模数据中心的扩张不仅带来了对计算能力的急剧需求&#xff0c;也带来了前所未有的内存功率密度挑战&…

Docker 从安装到使用的完整指南

目录 什么是 DockerDocker 的核心概念 镜像容器DockerfileDocker Compose Docker 的安装 在 Windows 上安装 Docker在 macOS 上安装 Docker在 Linux 上安装 Docker Docker 的基本使用 启动第一个容器管理容器构建自定义镜像使用 Docker Compose 高级主题 Docker 网络Docker 数…

适合孩子学习用什么的落地灯?五款精品护眼大路灯分享

适合孩子学习用什么的落地灯&#xff1f;说到护眼落地灯&#xff0c;都会出现两种呼声&#xff1a;一种是认为是“智商税”&#xff0c;而另外一种则是妥妥的照明神器&#xff01;护眼大路灯到底是哪种定义呢&#xff1f;贵的护眼灯一定好吗&#xff1f; 这么年&#xff0c;护…

区块链技术:重塑金融市场监管的新引擎

一、引言 随着金融市场的不断发展和创新&#xff0c;监管面临的挑战也日益严峻。传统的监管模式已难以满足现代金融市场的需要&#xff0c;而区块链技术的出现为金融市场监管带来了新的机遇。本文将探讨区块链技术在金融市场监管中的作用&#xff0c;以及它如何重塑监管模式&a…

深入研究websocket直播中signature这个参数怎么来的,模拟自己生成一个

上一节课我们已经找到了生成signature这个字段的代码位置&#xff0c;就是这个B函数&#xff0c;嗯......听起来好像有点奇怪&#xff0c;但是它确实叫B啊&#xff0c;笑死。不管了&#xff0c;看一下里面的逻辑是啥。 注意e参数的内容是&#xff1a; {"app_name":…

【Academy】API测试API testing

API测试API testing 概述API侦察API文档发现API文档使用机器可读的API文档 标识API端点与API端点交互确定支持的HTTP方法确定支持的内容类型使用Intruder查找隐藏端点 查找隐藏参数大量分配漏洞识别隐藏参数测试大规模分配漏洞 防止API中的漏洞服务端参数污染测试查询字符串中的…

作业管理系统

摘 要 随着网络的发展&#xff0c;信息化时代的到来&#xff0c;在教学工作的过程中作用越来越明显&#xff0c;作业的及时发布&#xff0c;学生的及时提交&#xff0c;以及通过网上的批改和评分&#xff0c;都大大促进教学质量的发展&#xff0c;充分的利用网络来加强管理&am…

用类来实现输入和输出时间(时:分:秒)

编写程序&#xff1a; 运行结果&#xff1a; 程序分析&#xff1a; 这是一个很简单的例子。类Time中只有数据成员&#xff0c;而且它们被定义为公用的&#xff0c;因此可以在类的外面对这些成员进行操作。t1被定义为Time类的对象。在主函数中向t1对象的数据成员输入用户…

MongoDB基础知识

​ 文档是mongodb中的最初单元&#xff0c;类似于mysql中的行&#xff0c;集合可以看做一个具有动态模式的表&#xff0c;mongodb可以拥有多个互相独立的数据库&#xff0c;每个数据库&#xff0c;都拥有自己的集合&#xff1b;每一个文档都有一个特殊的健&#xff1a;“_id”&…

“一站式企业服务平台”的功能架构

为提升区域营商环境&#xff0c;为促进区域经济发展&#xff0c;实现资源高效配置&#xff0c;全国各区域政府及产业园区都越来越重视如何创新企业服务机制、提升企业服务水平&#xff0c;来保障区域内的企业稳定及帮扶企业高质量的发展。随着近年来大数据、人工智能等新一代信…

前端记录日志生成文件保存到本地

一、前言 项目上线后业务人员反馈说是打印数据不准确&#xff0c;通过websocket连接打印机服务去进行打印&#xff0c;会出现条码漏打的情况&#xff1b;通过后端日志和打印机日志均没有找到问题原因&#xff0c;猜测是websocket连接断开导致的问题。 也想通过前端日志去排查…

第9天:静态文件和媒体文件管理

第9天&#xff1a;静态文件和媒体文件管理 目标 管理静态资源&#xff08;如CSS、JavaScript、图片等&#xff09;和用户上传的文件。 任务概览 配置静态文件和媒体文件的存储路径。学习如何收集和压缩静态文件。 详细步骤 1. 配置静态文件和媒体文件的存储路径 在setti…

Redis 分布式锁教程

Redis 分布式锁教程 简介 在分布式系统中&#xff0c;多个进程可能会尝试同时访问共享资源&#xff0c;这会导致数据不一致或者竞争条件。分布式锁是一种用于控制对共享资源访问的机制。Redis 是一个流行的内存数据存储系统&#xff0c;可以用来实现分布式锁。 本文将介绍如…

react项目中如何书写css

一&#xff1a;问题&#xff1a; 在 vue 项目中&#xff0c;我们书写css的方式很简单&#xff0c;就是在 .vue文件中写style标签&#xff0c;然后加上scope属性&#xff0c;就可以隔离当前组件的样式&#xff0c;但是在react中&#xff0c;是没有这个东西的&#xff0c;如果直…