当前位置: 首页 > news >正文

数据库浅识及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不能混用

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

相关文章:

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

数据库基础概念与MySQL二进制安装与初始化 使用数据库的必要性 数据库可以结构化储存大量数据信息,方便用户进行有效的检索访问 有效的保持数据信息的一致性,完整性,降低数据冗余 可以满足应用的共享和安全方面的要求 数据库基本概念 数据…...

机器学习之数学基础(七)~过拟合(over-fitting)和欠拟合(under-fitting)

目录 1. 过拟合与欠拟合 1.1 Preliminary concept 1.2 过拟合 over-fitting 1.3 欠拟合 under-fitting 1.4 案例解析:黑天鹅 1. 过拟合与欠拟合 1.1 Preliminary concept 误差 经验误差:模型对训练集数据的误差。泛化误差:模型对测试…...

⭐最新版!SpringBoot正确集成PageHelper姿势,不再被误导!

GGBond🔈 CSDN的朋友们大家好哇,我是新来的Java练习生 CodeCodeBond! 什么是PageHelper? 这里给不知道的人儿说明一下~~ 知道的xdm可以跳过了! PageHelper顾名思义是一个 页面 帮手。也就是分页查询的一个好用的工具…...

解决:Xshell通过SSH协议连接Ubuntu服务器报“服务器发送了一个意外的数据包,received:3,expected:20”

下图所示: 日志也基本看不出来问题在哪,只是说断开了连接大概是验证失败。有幸在某论坛评论区找到了原因,是因为我的xshell版本太低了而服务器的ssh版本太高,高版本的ssh默认屏蔽了一部分不太安全的算法导致建立连接的时候验证失败…...

[学习笔记] 禹神:一小时快速上手Electron笔记,附代码

课程地址 禹神:一小时快速上手Electron,前端Electron开发教程_哔哩哔哩_bilibili 笔记地址 https://github.com/sui5yue6/my-electron-app 进程通信 桌面软件 跨平台的桌面应用程序 chromium nodejs native api 流程模型 main主进程 .js文件 node…...

Java stream操作流常用的方式

在Java中,Stream操作流是Java 8新引入的一个功能,它提供了很多强大的操作,方便我们进行集合的处理和操作。常用的Stream操作方式有: 1.过滤:使用filter()方法可以过滤掉集合中不符合条件的元素。 2.映射:…...

【C#】图形图像编程

实验目标和要求: 掌握C#图形绘制基本概念;掌握C#字体处理;能进行C#图形图像综合设计。 运行效果如下所示: 1.功能说明与核心代码 使用panel为画板,完成以下设计内容: 使用pen绘制基础图形;使…...

埃特巴什码加解密小程序

埃特巴什码加解密小程序 这几天在看CTF相关的课程,涉及到古典密码学和近代密码学还有现代密码学。 简单替换密码 Atbash Cipher 埃特巴什码(Atbash Cipher)其实可以视为下面要介绍的简单替换密码的特例,它使用字母表中的最后 一个字母代表第一个字母…...

Golang笔记:使用serial包进行串口通讯

文章目录 目的使用入门总结 目的 串口是非常常用的一种电脑与设备交互的接口。这篇文章将介绍golang中相关功能的使用。 本文使用的包为 :go.bug.st/serial https://pkg.go.dev/go.bug.st/serial https://github.com/bugst/go-serial 另外还有一些常见的包如&…...

EasyExcel 导出批注信息

1. 批注信息 package com.xxx.demo;import lombok.Getter;/*** This class represents the comment information associated with a specific cell in an Excel sheet.* The columnIndex field specifies the column number of the cell, and the comment field stores the te…...

HttpServletRequest・getContentLeng・getContentType区别

getContentLength(): 获取客户端发送到服务器的HTTP请求主体内容的字节数(长度) 如果请求没有正文内容(如GET),或者请求头中没有包含Content-Length字段,则该方法返回 -1 getContentType()&am…...

Matlab|【防骗帖】考虑时空相关性的风电功率预测误差建模与分析

目录 1 主要内容 2 部分程序 3 下载链接 1 主要内容 这个程序《考虑时空相关性的风电功率预测误差建模与分析》画的图片非常漂亮,和原文献基本一致,但是实际上内容并未实现出来,主要就是利用现有的风电预测的数据和结果做了相关的图&#…...

【Android面试八股文】说一说ListView卡顿的原因以及相对应的优化策略

文章目录 一、ListView卡顿的原因1.1 Item没有复用1.2 布局的层级过深1.3 数据绑定逻辑过多1.4 滑动时不必要的图片刷新1.5 频繁的notifyDataSetChanged二、优化策略2.1 使用 ViewHolder 进行视图复用2.2 优化布局结构2.3 优化数据绑定逻辑过多2.4 图片加载优化2.5 避免频繁调用…...

Kotlin 中的内联函数

1 inline 内联函数:消除 Lambda 带来的运行时开销。 举例来说: fun main() {val num1 100val num2 80val result num1AndNum2(num1, num2) { n1, n2 ->n1 n2} }fun num1AndNum2(num1: Int, num2: Int, operation: (Int, Int) -> Int): Int …...

KALI LINUX 开启ssh免登录服务及固定ip及

SSH以进行远程登录 在Kali Linux中启用SSH以进行远程登录,请按照以下步骤操作: 安装SSH服务:sudo apt update sudo apt install openssh-server 已安装可忽略 sudo systemctl start ssh 启动SSH服务 sudo systemctl enable ssh 确保SSH服务设置为开机启动: (可选)如…...

亮数据,一款新的低代码爬虫利器!

在当今数据驱动型时代,数据采集和分析能力算是个人和企业的核心竞争力。然而,手动采集数据耗时费力且效率低下,而且容易被网站封禁。 我之前使用过一个爬虫工具,亮数据(Bright Data) ,是一款低…...

配置OSPF认证(华为)

#交换设备 配置OSPF认证-基于华为路由器 OSPF(开放最短路径优先)是一种内部网关协议(IGP),用于在单一自治系统(AS)内决策路由。OSPF认证功能是路由器中的一项安全措施,它的主要用途…...

关于ip地址的网页无法访问navigator的gpu、媒体、蓝牙等设备的解决方法

在使用threejs的WebGPURenderer渲染器时,发现localhost以及127.0.0.1才能访问到navigator.gpu,直接使用ip会变成undefined,原因是为了用户的隐私安全,只能在安全的上下文中使用,非安全的上下文就会是undefined,安全上下…...

深入理解外观模式(Facade Pattern)及其实际应用

引言 在软件开发中,复杂的系统往往由多个子系统组成,这些子系统之间的交互可能非常复杂。外观模式(Facade Pattern)通过为这些子系统提供一个统一的接口,简化了它们的交互。本篇文章将详细介绍外观模式的概念、应用场…...

为什么永远不会有语言取代 C/C++?

每个 CPU 都带有一种称为 ISA(指令集架构)汇编的电路语言。ISA 程序集是一种硬件语言,由基本数据操作、数学计算和结构化编程(即 jmp)的操作组成。但是,为每个计算需求编写汇编代码无疑是耗时的&#xff0c…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题

在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...

云原生玩法三问:构建自定义开发环境

云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...

论文笔记——相干体技术在裂缝预测中的应用研究

目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术:基于互相关的相干体技术(Correlation)第二代相干体技术:基于相似的相干体技术(Semblance)基于多道相似的相干体…...

C++.OpenGL (20/64)混合(Blending)

混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...

Web中间件--tomcat学习

Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机,它可以执行Java字节码。Java虚拟机是Java平台的一部分,Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...

[论文阅读]TrustRAG: Enhancing Robustness and Trustworthiness in RAG

TrustRAG: Enhancing Robustness and Trustworthiness in RAG [2501.00879] TrustRAG: Enhancing Robustness and Trustworthiness in Retrieval-Augmented Generation 代码:HuichiZhou/TrustRAG: Code for "TrustRAG: Enhancing Robustness and Trustworthin…...