数据库简介与MySQL编译安装

news2024/11/25 14:23:36

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


安装完成

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

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

相关文章

<地球科学专题>机器学习与灾害风险

<地球科学专题>机器学习与灾害风险 南昌大学黄发明副教授同济大学--张东明教授https://www.koushare.com/lives/room/081366 蔻享直播间,稍后会有快速回放。 南昌大学黄发明副教授

Linux--Ubuntu安装

Linux操作系统时程序员必须要学的操作系统。接下来我们就来看一下Linux操作系统是如何安装的 我们在 Vmware 虚拟机中安装 linux 系统&#xff0c;所以需要先安装 vmware 软件&#xff0c;然后再 安装 Linux 系统。 一.所需安装文件&#xff1a; Vmware 下载地址(现在最新版的…

基于Zigbee技术的智能家居系统(附详细使用教程+完整代码+原理图+完整课设报告)

🎊项目专栏:【Zigbee课程设计系列文章】(附详细使用教程+完整代码+原理图+完整课设报告) 前言 👑由于无线传感器网络(也即是Zigbee)作为🌐物联网工程的一门必修专业课,具有很强的实用性,因此很多院校都开设了zigbee的实训课程;👑同时最近很多使用了我的单片机课…

数据库系统概论(超详解!!!) 第四节 关系数据库标准语言SQL(上)

1.SQL概述 SQL&#xff08;Structured Query Language&#xff09;结构化查询语言&#xff0c;是关系数据库的标准语言 SQL是一个通用的、功能极强的关系数据库语言 SQL的动词 基本概念 基本表 &#xff1a;本身独立存在的表&#xff1b; SQL中一个关系就对应一个基本表&am…

【PostGresql】------ pg多表数据多个条件汇总 使用 union 方法示例代码

1. 示例代码如下&#xff1a; SELECT"ID","DT_DATE","CNAME","RMAN_NAME","DEP_NAME","DEP_ID","INVEST_MAN_NAME","TYPE_NAME","INVEST_LEVEL_NAME","POSITION_NAME",…

常用负载均衡详解

一、介绍 在互联网场景下&#xff0c;负载均衡&#xff08;Load Balance&#xff09;是分布式系统架构设计中必须考虑的一个环节&#xff0c;它通常是指将负载流量&#xff08;工作任务、访问请求&#xff09;平衡、分摊到多个操作单元&#xff08;服务器、组件&#xff09;上去…

Sora 发布的意义能和 ChatGPT 相比吗?

个人觉得&#xff0c;Sora 的发布弥补了ChatGPT语言模型在视频内容领域的不足&#xff0c;简单来说&#xff0c;这两个模型均有自己的优势&#xff0c;ChatGPT是一种语言模型&#xff0c;可以理解和解释自然语言&#xff0c;而Sora是文字到视频转化的应用&#xff0c;将文本内容…

Transformer的前世今生 day04(ELMO、Attention注意力机制)

ELMO 前情回顾 NNLM模型&#xff1a;主要任务是在预测下一个词&#xff0c;副产品是词向量Word2Vec模型&#xff1a;主要任务是生成词向量 CBOW&#xff1a;训练目标是根据上下文预测目标词Skip-gram&#xff1a;训练目标是根据目标词预测上下文词 ELMO模型的流程 针对Wor…

ArmSoM Rockchip系列产品 通用教程 之 RTC 使用

1. RTC 简介​ RTC&#xff1a;(Real_Time Clock)&#xff1a;实时时钟 HYM8563是一种低功耗实时时钟&#xff08;RTC&#xff09;芯片&#xff0c;用于提供精确的时间和日期信息。它提供一个可编程的时钟输出&#xff0c;一个中断输出和一个掉电检测器&#xff0c;所有的地址…

HTML实现卷轴动画完整源码附注释

动画效果截图 页面的html结构代码 <!DOCTYPE html> <html> <head lang=

福克斯2010 1.8L 手动档

老车了记录点东西 好看也便宜 福克斯维修保养费用调查_保养维护_车系文章_空港平行进口汽车交易服务中心 https://tjautoland.net/article-40.html 福克斯自从上市后&#xff0c;凭借其时尚动感的外形、良好的操控性和极佳的驾乘舒适度&#xff0c;在国内紧凑型市场上持续热…

最新ChatGPT/GPT4科研应用与AI绘图及论文高效写作教程

原文链接&#xff1a;最新ChatGPT/GPT4科研应用与AI绘图及论文高效写作教程https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247598050&idx5&sn70fd3f5946d581ad9c1363295b130ef5&chksmfa823e05cdf5b713baf9cf1381bfb2455ad675a0b21e194bef8b76f35d6aa77…

人工智能快速发展:AI机器人是否能全面替代人工客服?

随着人工智能技术的飞速发展&#xff0c;AI机器人在各个领域的应用越来越广泛。其中&#xff0c;人工客服行业也开始出现了AI机器人的身影。然而&#xff0c;能否完全将人工客服替换为AI机器人仍存在许多争议。 本文将从AI快速发展的背景出发&#xff0c;分析AI机器人取代人工…

SAP SD UKM_ITEMS_READ 信贷风险总额

这几天&#xff0c;业务怀疑 信贷金额不对&#xff0c;来查数据&#xff0c;发现信贷风险总额 是从UKM_ITEMS_READ获取的&#xff0c;但是具体数据在哪里&#xff0c;还是不确认。 最终咨询老师后&#xff0c;提供了文档 SAP S4 HANA信贷管理之信贷未清表_ukm_commts_delete-CS…

Vue3+.NET6前后端分离式管理后台实战(五)

1&#xff0c;Vue3.NET6前后端分离式管理后台实战(五)已经在订阅号发布有兴趣的可以关注一下&#xff01; 2&#xff0c;有兴趣请扫码关注谢谢&#xff01;

阿里云服务器配置openssh-server支持ssh客户端远程终端登陆

登陆云服务器: 成功登陆 更新包: 更新完成 升级最新包 选择YES 空格选中所有并点击ok

【鸿蒙系统】 ---OpenHarmony加快本地编译(二)

&#x1f48c; 所属专栏&#xff1a;【鸿蒙系统】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢…

【3DsMax】UVW展开——以制作牙膏盒为例

效果 步骤 1. 从网上下载牙膏盒贴图&#xff0c;我下载的贴图地址为&#xff08;牙膏盒贴图链接&#xff09; 2. 打开3DsMax&#xff0c;创建一个长方体&#xff0c;设置长宽高分别为180、45、40毫米 打开材质编辑器&#xff0c;点击漫反射后的按钮 双击“位图” 将材质赋予长…

C++初阶 | [九] list 及 其模拟实现

摘要&#xff1a;介绍 list 容器&#xff0c;list 模拟实现&#xff0c;list与vector的对比 list&#xff08;带头双向循环列表&#xff09; 导入&#xff1a;list 的成员函数基本上与 vector 类似&#xff0c;具体内容可以查看相关文档(cplusplus.com/reference/list/list/)&…

JavaScript中new操作符具体干了什么

文章目录 一、是什么二、流程三、手写new操作符 一、是什么 在JavaScript中&#xff0c;new操作符用于创建一个给定构造函数的实例对象 例子 function Person(name, age){this.name name;this.age age; } Person.prototype.sayName function () {console.log(this.name) …