数据库简介与MySQL编译安装

1数据库基础

什么是数据库

数据库(Database)是一个有组织的数据存储系统,用于有效地存储、检索、管理和维护数据。数据库系统允许用户以结构化的方式存储和操作大量数据,并提供了一种可靠的方法来管理和维护这些数据,以满足不同应用程序和用户的需求。

数据库分为关系型非关系型,关系型数据库

关系型数据库: 是一种基于关系模型的数据库管理系统(DBMS)。在关系型数据库中,数据以表格的形式组织,表格由行和列组成,每一行代表一个数据记录,而每一列代表一个数据字段。关系型数据库的核心思想是将数据组织成易于理解和管理的表格,这些表格之间可以建立关系。

非关系型数据库: 非关系型数据库(NoSQL,Not Only SQL)是一类数据库管理系统,与传统的关系型数据库(RDBMS)不同,它们不采用固定的表格结构来存储数据。非关系型数据库旨在应对大规模、分布式、半结构化或无结构化数据的存储和处理需求,以适应现代应用程序的挑战。

数据库发展历史

1层次型和网状型数据库时代(20世纪60年代):这一阶段的代表性产品是IBM在1969年研制的层次模型数据库管理系统IMS。层次型和网状型数据库通过父子节点和链接来表达数据之间的关系。

2关系型数据库时代(20世纪70年代至今):IBM研究员E.F.Codd在1970年提出了关系模型,标志着关系型数据库的诞生。代表性产品包括IBM的System R和Ingres等。关系型数据库通过表格结构来表达数据之间的关系。

第三代数据库时代(21世纪初至今):这一阶段以面向对象数据库和NoSQL数据库为代表,提供更丰富的数据模型和强大的数据管理功能。代表性产品包括MongoDB、Redis等。第三代数据库系统更加开放和可扩展,适用于面向对象和大数据应用场景。
数据库管理系统从人工管理、文件管理发展到数据库管理系统,数据存储、组织、查询和操作方式也随之发生巨大变化。关系型数据库至今仍占主导地位,但NoSQL数据库在特定场景下也有广泛应用。数据库技术仍在不断发展之中。

数据库基本概念

1.数据(Data):数据是描述事物的符号记录,可以是数字、文字、图形、图像、声音等。数据以记录的形式按统一格式存储,而不是杂乱无章的。
2.表(Table):数据库中的数据存储在表中,表由行(记录)和列(字段)组成,用于存储具有相同格式和类型的数据。行表示一个实体,列表示实体的属性。
3.数据库(Database):数据库是表的集合,以一定的组织方式存储相关数据,提供数据的统一管理。
4.数据库管理系统(DBMS):DBMS是数据库资源管理和访问的系统软件,它提供数据库的建立和维护、数据定义、数据操纵、数据库运行管理等功能。
5.数据库系统(DBS):DBS是一个人机系统,由硬件、操作系统、数据库、DBMS、应用软件和用户组成。用户可以通过DBMS或应用程序操作数据库。
6.DBMS工作模式DBMS接受应用程序的数据请求,将高级指令转换为底层指令,实现对数据库的操作,并返回处理结果。

关系型数据库

关系型数据库基于关系模型,使用表格结构来表达数据之间的关系。关系型数据库使用实体-关系(E-R)模型,其基本结构是表结构,由行和列组成。每一行代表一个实体,每一列代表实体的一个属性。主键用于唯一标识表中的每条记录,它具有唯一性和非空两个特性。外键用于表示表与表之间的关联关系,通过外键可以将多个表关联起来。关系型数据库支持事务处理,即保证一系列数据库操作要么全部成功,要么全部失败。关系型数据库使用结构化查询语言SQL来查询和管理数据。常见的关系型数据库管理系统包括MySQL、Oracle、SQL Server、PostgreSQL等。

非关系型数据库

非关系型数据库,亦称为NoSQL数据库,其基本结构与关系型数据库截然不同。NoSQL数据库以其数据模型灵活性、强大的扩展性、高性能、灵活的查询方式和非事务处理等特点而闻名。它们能够存储多种类型的数据,如键值对、文档、图形等,不受固定的表结构限制,非常适合处理大量数据,特别是在大数据应用场景中。大多数NoSQL数据库不支持SQL查询语言,而是采用API或特定查询语言进行数据访问。与关系型数据库不同,它们通常不支持ACID事务处理。常见的非关系型数据库管理系统包括MongoDB、Redis、Cassandra、HBase等。

数据库的安装

安装编译环境

yum -y install gcc gcc-c++ cmake bison bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel   ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio-devel

创建mysql管理用户

useradd -M -s /sbin/nologin  mysql

下载mysql源码的压缩安装包

MySQL源码包下载地址
这里以MySQL5.7.41源码包为主

解归档源码包

tar xfv mysql-boost-5.7.41.tar 

安装编译环境

yum -y install gcc gcc-c++ cmake bison bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel   ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio-devel

开始编译

cd mysql-5.7.41
cmake \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \          #指定安装路径
-DMYSQL_UNIX_ADDR=/apps/mysql/mysql.sock \    #指定mysql进程监听套接字文件(数据库连接文件)的存储路径
-DSYSCONFDIR=/etc \                           #指定配置文件的存储路径
-DSYSTEMD_PID_DIR=/apps/mysql \               #指定进程文件的存储路径
-DDEFAULT_CHARSET=utf8  \ 					  #指定默认使用的字符集编码,如utf8 
-DDEFAULT_COLLATION=utf8_general_ci \		  #指定默认使用的字符集校对规则
-DWITH_INNOBASE_STORAGE_ENGINE=1 \			  #安装INNOBASE存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \			  #安装ARCHIVE存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \			  #安装BLACKHOLE存储引擎
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \		  #安装FEDERATED存储引擎 
-DMYSQL_DATADIR=/apps/mysql/data \			  #指定数据库文件的存储路径
-DWITH_BOOST=boost \						  #指定boost的路径,
-DWITH_SYSTEMD=1							  #生成便于systemctl管理的文件

使用双核编译

make -j2 
make install

在这里插入图片描述
在这里插入图片描述

创建MySQL用户并设置

useradd -s /sbin/nologin mysql
chown -R mysql:mysql /apps/mysql/
[client]
port = 3306
default-character-set=utf8
socket = /apps/mysql/mysql.sock[mysql]
port = 3306
default-character-set=utf8
socket = /apps/mysql/mysql.sock[mysqld]
user = mysql
basedir = /apps/mysql
datadir = /apps/mysql/data
port = 3306
character_set_server=utf8
pid-file = /apps/mysql/mysqld.pid
socket = /apps/mysql/mysql.sock
server-id = 1sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

设置环境变量

echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
echo 'export PATH' >> /etc/profile
source /etc/profile

初始化数据库

cd /apps/mysql/bin/mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/apps/mysql \
--datadir=/apps/mysql/datacp /apps/mysql/usr/lib/systemd/system/mysqld.service  /usr/lib/systemd/system/systemctl daemon-reloadsystemctl start mysqld.servicemysqladmin -u root -p password "需要设置的密码"mysql -u root -p                   #登录mysql

安装完成

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

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

相关文章

数据库的基本概念与安装MySQL

一、数据库的基本概念 1、什么是数据? 描述事物的符合记录包括数字、文字、图形、图像、声音、档案记录等以“记录”形式按统一的格式进行存储 2、什么是表? 将不同的记录组织在一起用来存储具体数据 3、什么是数据库 表的集合,是存储数…

2023年中国电商市场研究报告

研究范畴界定为中国国内2C电商市场 ⚠️ 关键点: 流量红利减少,电商市场进入存量增量 竞争的发展阶段;新兴电商平台不断挑战现有头部电商平台行业地位;消费者更加趋于理性,更加关注低价和服务;市场趋势&…

嵌入式和 Java选哪个?

今日话题,嵌入式和 Java 走哪个?对于嵌入式领域有浓厚兴趣的人,并不会比Java行业薪资低,处于上中游水平。特别是从2020年开始,嵌入式领域受益于芯片产业的兴起,表现出了强劲的增长势头。薪资水平受多方面因素影响。嵌…

AndroidLinux GPIO控制方法

目录 1 GPIO整体架构 2 user space 层 gpio使用方法 2.1 sysfs控制方法 2.1.1 kernel版本区别 2.1.2 /sys/class/gpio 2.1.3 /sys/bug/gpio/devices 2.2 chardev控制方法 2.2.1 chardev 示例代码 2.2.2 示例代码主要步骤描述 2.2.3 include/linux/gpio.h 全部代码 2.3…

mmz批量多页抓取数据-AES.CBC算法-爬虫

目标:mmz多页下载 方法:加一个for循环实现多页的下载 问题:浏览器传输服务器时对页码参数做了加密处理 解决方法: 1、判断加密算法模式(mmz是AES-CBC算法) 2、找到加密的key和iv 代码: i…

数据可信流通,从运维信任到技术信任

信任 共同观点: 信任是涉及交易或交换关系的基础 身份可确认利益可依赖能力有预期行为有后果 数据流通中的不可信风险 内循环:数据持有方在自己的运维安全域内对自己的额数据使用和安全拥有全责外循环:数据要素在离开持有方安全域后&#…

使用 git 先提交后拉取的时候远程分支不允许问题

问题场景 修改本地代码使用 git 先提交后拉取的时候远程分支不允许的问题 修改本地代码时,远程分支存在其他新提交先执行了 git commit -m xxx update然后再执行 git pull 拉取远程分支代码,出现如下提示 hint: You have divergent branches and need…

基于python 变配电室运行状态评估与预警系统flask-django-nodejs-php

变配电室电气设备运行状态和环境信息缺乏必要的监测评估预警手段,如有一日遭遇突发情况,将危及电气设备安全稳定运行,易造成设备损坏和电力供应中断[2]。 目前,我国变配电室常采用无人管理的室内站设计方案,长期以来变配电室运维工…

黑马程序员——javase进阶——day10——IO流,Properties集合,IO工具类

目录: IO流的介绍 为什么要学习IO流什么是IO流IO流的分类字节流输出流 字节输出流入门字节输出流写数据的方法写数据的换行和追加写入字节输入流 字节输入流介绍字节输入流读多个字节图片的拷贝异常的捕获处理字节输入流—次读—个字节数组字节缓冲区流 字节缓冲流…

【C语言_数组_复习篇】

目录 一、数组的概念 二、数组的类型 三、一维数组 3.1 一维数组的创建 3.2 一维数组的初始化 3.3 一维数组的访问 3.4 一维数组在内存中的存储 四、二维数组 4.1 二维数组的创建 4.2 二维数组的初始化 4.3 二维数组的访问 4.4 二维数组在内存中的存储 五、变长数组 六、…

Android 开发 地图 polygon 显示信息

问题 Android 开发 地图 polygon 显示信息 详细问题 笔者进行Android项目开发,接入高德地图绘制区域后,需要在指定区域(位置)内显示文本信息,如何实现 实现效果 解决方案 代码 import com.amap.api.maps.model.T…

Jenkins实现CICD(3)_Jenkins连接到git

文章目录 1、如何完成上述操作,并且不报如下错:2、连接不上git,操作如下:3、将上边产生的3个文件拷贝到:C:\Windows\System32\config\systemprofile\.ssh4、新建下图凭证:创建步骤: 5、公钥填到…

vue3 搜索框 相关搜索内容 搜索词变色

html <!-- 搜索框 --> <div class"input"><input type"text" v-model"search_content" input"replace_text(search_content)"focus"search_show true, replace_text(search_content)" blur"search_s…

NCV4264-2ST50T3G芯片中文资料PDF数据手册引脚图规格书参数产品手册价格图片

产品概述&#xff1a; NCV4264-2 在功能和引脚上都与 NCV4264 兼容&#xff0c;具有较低的静态电流消耗。 其输出级提供 100 mA&#xff0c;输出电压精度为 /-2.0%。 100 mA 负载电流下的最大漏电压为 500 mV。它具有针对 45 V 输入瞬变、输入电源逆向、输出过电流故障和超高裸…

c语言(数据在内存中的存储)

1. 整数在内存中的存储 整数的2进制表⽰⽅法有三种&#xff0c;即原码、反码和补码 三种表⽰⽅法均有符号位和数值位两部分&#xff0c;符号位都是⽤0表⽰“正”&#xff0c;⽤1表⽰“负”&#xff0c;⽽数值位最 ⾼位的⼀位是被当做符号位&#xff0c;剩余的都是数值位。 正整…

可视化工具 Another-Redis-Desktop-Manager 的安装与使用

一,下载安装 1.简介 Redis是一种快速、高效的NoSQL数据库&#xff0c;广泛用于缓存、会话管理、消息队列等领域。为了更方便地管理Redis实例、监控Redis性能、执行Redis命令、查看Redis数据&#xff0c;许多开发者使用可视化管理工具。而其中&#xff0c;Another Redis Deskt…

关于Ansible的模块 ①

转载说明&#xff1a;如果您喜欢这篇文章并打算转载它&#xff0c;请私信作者取得授权。感谢您喜爱本文&#xff0c;请文明转载&#xff0c;谢谢。 什么是Ansible模块 在Linux中&#xff0c;bash无论是在命令行上执行&#xff0c;还是在bash脚本中&#xff0c;都需要调用cd、l…

理论学习:outputs_cls.detach()的什么意思

在PyTorch中&#xff0c;.detach()方法的作用是将一个变量从当前计算图中分离出来&#xff0c;返回一个新的变量&#xff0c;这个新变量不会要求梯度&#xff08;requires_gradFalse&#xff09;。这意味着使用.detach()方法得到的变量不会在反向传播中被计算梯度&#xff0c;也…

知识宣传手册该怎么制作?

知识宣传手册该怎么制作&#xff1f; 制作知识宣传手册是一个很好的方式来传播知识&#xff0c;提高公众对特定主题的了解。它们不仅能帮助我们传播重要信息&#xff0c;还能激发人们的求知欲&#xff0c;推动社会的进步。那么&#xff0c;如何制作一份引人入胜的知识宣传手册…

C++_day6:2024/3/18

作业1&#xff1a;编程题&#xff1a; 以下是一个简单的比喻&#xff0c;将多态概念与生活中的实际情况相联系&#xff1a; 比喻&#xff1a;动物园的讲解员和动物表演 想象一下你去了一家动物园&#xff0c;看到了许多不同种类的动物&#xff0c;如狮子、大象、猴子等。现在…