数据库简介与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 = 1

sql_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/data


cp /apps/mysql/usr/lib/systemd/system/mysqld.service  /usr/lib/systemd/system/

systemctl daemon-reload


systemctl start mysqld.service

mysqladmin -u root -p password "需要设置的密码"

mysql -u root -p                   #登录mysql


安装完成

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

内网渗透学习-环境搭建

1、环境搭建测试 虚拟机网络环境配置,模拟外网和内网 主机操作系统网络内网ip外网ip物理主机window10vmnet8192.168.70.1攻击机kali Linuxvmnet8192.168.70.134域控主机win server 2008 r2vmnet0192.168.52.138域成员主机win server 2k3vmnet0192.168.52.141服务器…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《含光储充的配网虚拟电厂二次调频随机模型预测控制策略 》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

51单片机-蜂鸣器

1.蜂鸣器的介绍 无源蜂鸣器不能一直通电&#xff0c;无源蜂鸣器内部的线圈较小&#xff0c;易烧坏 蜂鸣器的驱动 达林顿晶体管&#xff08;npn型&#xff09; 应用&#xff1a; 按下独立按键同时蜂鸣器响起提示音&#xff0c;数码管显示对应的独立按键键码 #include <REG…

windows服务器iis更换彻底删除 原443 ssl证书以及一个服务器运行多个独立域名网站并绑定多个证书的方法

服务器上的433 ssl证书,可以让网站以https加密方式访问,但是这个证书会占用443端口,iis7版本,只能安装一个443证书,所以.原来的过期了.需要删除.删除方式,不是进运行 winr的mmc 而是进iis的默认的总的主页面板(不是点击具体的网站或者程序池),点击服务器证书.进去才能删除.否则…

程序员下班以后做什么副业合适?

我就是一个最普通的网络安全工程师&#xff0c;出道快10年了&#xff0c;不出意外地遭遇到瓶颈期&#xff0c;但是凭技术在各大平台挖漏洞副业&#xff0c;硬是妥妥扛过来了。 因为对于程序员来讲&#xff0c;这是个试错成本很低、事半功倍的选择。编程技能是一种强大生产力&a…

OpenGL-高斯模糊原理

OpenGL-高斯模糊原理 正态分布 上图人类的智商分布比例&#xff0c;大多数人的智商集中在85-115&#xff0c;超高和超低智商的人只占很小的比例&#xff0c;柱状图可用一条曲线拟合&#xff0c;如图中红色曲线所示. 这个钟形曲线就是正态分布曲线. 正态分布曲线体现了宇宙中很…

【C++】static关键字及其修饰的静态成员变量/函数详解

&#x1f984;个人主页:修修修也 &#x1f38f;所属专栏:C ⚙️操作环境:Visual Studio 2022 目录 什么是static? static的引入 静态数据的存储 全局(静态)存储区 static成员概念 static成员特性 ststic成员的应用 利用static实现一个可以计算程序中正在使用的类对象有…

使用 Docker Compose 安装 Harbor

Harbor 是一个企业级开源仓库&#xff0c;用于存储和管理 Docker 镜像。它提供了一系列功能&#xff0c;包括镜像复制、安全扫描和漏洞管理。Harbor 可以通过多种方式安装&#xff0c;其中之一是使用 Docker Compose。 先决条件 在安装 Harbor 之前&#xff0c;您需要满足以下…

golang sync.Map之如何设计一个并发安全的读写分离结构?

在 golang中&#xff0c;想要并发安全的操作map&#xff0c;可以使用sync.Map结构&#xff0c;sync.Map 是一个适合读多写少的数据结构&#xff0c;今天我们来看看它的设计思想&#xff0c;来看看为什么说它适合读多写少的场景。 如下&#xff0c;是golang 中sync.Map的数据结构…

详细分析Js中的Promise.all基本知识(附Demo)

目录 1. 基本知识2. Demo3. 实战 1. 基本知识 Promise.all 是 JavaScript 中的一个方法&#xff0c;它接受一个由 Promise 对象组成的数组作为参数&#xff0c;并在所有 Promise 对象都变为 resolved&#xff08;已完成&#xff09;状态时才返回一个新的 Promise 对象&#xf…

KTV点歌系统|基于JSP技术+ Mysql+Java+ B/S结构的KTV点歌系统设计与实现(可运行源码+数据库+设计文档)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含java&#xff0c;ssm&#xff0c;springboot的平台设计与实现项目系统开发资源&#xff08;可…

MyBatis是纸老虎吗?(四)

在《MyBatis是纸老虎吗&#xff1f;&#xff08;三&#xff09;》这篇文章中我们一起梳理了MyBatis配置文件的解析流程&#xff0c;并详细介绍了其中的一些常见节点的解析步骤。通过梳理&#xff0c;我们弄清楚了MyBatis配置文件中的一些常用配置项与Java Bean之间的对应关系&a…

linux网线正常,但没有网络,ifconfig没有ip地址

ubuntu 22.04环境&#xff1a; 今天正在用着好好的&#xff0c;不知道为什么突然没有网络了&#xff0c;网线灯也不亮&#xff0c;ifconfig只有lo回环地址。 因为装的双系统&#xff0c;切换到windows环境发现网络是正常的。 使用-a&#xff1a; 使用各种方式比如下面的命令…

大模型应用开发-虚拟人-AI刘能、AI李宏伟

简介 本案例通过python编程调用智谱的大模型接口,以及很简单的prompt设计,实现了用大语言模型模拟一个人物来和我们对话,前端HTML代码是用大语言模型生成的(原因:我根本不会写前端啊~~),本教程适合所有对大模型应用开发感兴趣的初学者,这是个非常有趣的案例。 读完本…

excel 破解 保护工作簿及保护工作表

excel 破解 保护工作簿及保护工作表 对于这种 保护工作簿及保护工作表 不知道密码时&#xff0c;可以使用以下方法破解 保护工作簿破解 打开受保存的excel 右键点击sheet名称 —> 查看代码 复制以下代码&#xff0c;粘贴到代码区域 Sub 工作簿密码破解() ActiveWorkbook.…

C语言例:(m=a==b)||(n=a==b);求解m,n的值

题目&#xff1a;设int a0,b0,m0,n0;执行语句(mab)||(nab);求解m,n的值。 #include<stdio.h> int main(void) {int a0,b0,m0,n0;(mab)||(nab);printf("m%d\n",m);printf("n%d\n",n);return 0; } 优先级: () 优先 优先 a b -->为真&am…

Python元组:不可变的序列

文章目录 一、元组1.创建元组2.访问元组中的元素3.修改元组4.删除元组 二、运算符1.加法运算符2.乘法运算符3.in运算符4.not in运算符 三、元组内置方法1.len()2.max()3.min()4.tuple()4.1 将列表转换成元组4.2 将字符串转换成元组4.3 将集合转换成元组 三、总结 一、元组 在P…

【5G NB-IoT NTN】3GPP R17 NB-IoT NTN介绍

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G算力网络技术标准研究。 博客…

10000字!一文学会SQL数据分析

文章来源于山有木兮 原文链接&#xff1a;https://edu.cda.cn/goods/show/3412?targetId5695&preview0 第1节 SQL简介与基础知识 做数据分析的&#xff0c;为什么要写SQL&#xff1f; 没有数据的情况下&#xff0c;我们分析数据就像是巧妇难为无米之炊。因此&#xff0c…

Netty学习——源码篇3 服务端Bootstrap(一) 备份

1 介绍 在分析客户端的代码中&#xff0c;已经对Bootstrap启动Netty有了一个大致的认识&#xff0c;接下来在分析服务端时&#xff0c;就会相对简单。先看一下服务端简单的启动代码。 public class ChatServer {public void start(int port) throws Exception{NioEventLoopGro…