目录

一.数据库概念

一、数据库的基本定义

二、数据库管理系统(DBMS)

三、数据库系统(DBS)

四、数据模型

五、数据库的特点

六、数据库的应用领域

二.MySql

一、开源免费,降低中大型项目成本

二、跨平台与兼容性,适配中大型系统复杂环境

三、高性能与稳定性,支撑中大型系统的高并发需求

四、可扩展性强,满足中大型系统的规模增长

五、丰富的生态与工具链,提升中大型项目效率

六、社区支持与版本迭代,保障长期可用性

三.MYSQL的安装配置(社区版免费)

1. 下载 MySQL 安装包

2. 解压与配置环境变量

3. 初始化配置文件

4. 初始化与安装服务

5. 登录与修改密码

二、Linux 系统(CentOS 7/8)安装配置 MySQL

1. 卸载旧版本(如有)

2. 安装 MySQL

3. 启动服务与设置开机自启

4. 获取临时密码与修改密码

5. 配置远程访问(可选)

三、macOS 系统安装配置 MySQL

1. 下载与安装

2. 启动服务

3. 初始化与修改密码

四、通用配置优化(适合中大型系统)

五、验证安装成功


一.数据库概念

一、数据库的基本定义

数据库(Database,简称 DB)是长期存储在计算机内、有组织的、可共享的大量数据的集合。其数据按照一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。

例如,学校的学生信息管理系统中,存储学生基本信息、成绩、选课情况等数据的集合就是一个数据库。

二、数据库管理系统(DBMS)

数据库管理系统是位于用户与操作系统之间的一层数据管理软件,它为用户或应用程序提供访问数据库的方法,包括数据库的建立、查询、更新及各种数据控制。

常见的 DBMS 有:

  • 关系型数据库管理系统:MySQL、Oracle、SQL Server、PostgreSQL 等,它们采用关系模型(二维表)来组织数据。
  • 非关系型数据库管理系统(NoSQL):MongoDB(文档型)、Redis(键值型)、Cassandra(列族型)等,适用于处理大规模、高并发的非结构化或半结构化数据。

DBMS 的主要功能包括:

  • 数据定义功能:提供数据定义语言(DDL),用于定义数据库的结构,如创建表、修改表结构等。
  • 数据操纵功能:提供数据操纵语言(DML),用于对数据进行查询、插入、删除和修改等操作。
  • 数据库的运行管理:负责数据库的安全性、完整性、并发控制和恢复等,保证数据库系统的正常运行。
  • 数据库的建立和维护功能:包括数据库的初始数据导入、转储、恢复、性能监控等。

三、数据库系统(DBS)

数据库系统是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员(DBA)和用户构成

  • 数据库管理员(DBA):负责数据库的规划、设计、维护、监控等工作,确保数据库系统的正常运行和数据安全。
  • 应用系统:基于数据库开发的各种应用软件,如电商网站的后台管理系统、银行的交易系统等,通过 DBMS 与数据库进行交互。

四、数据模型

数据模型是对现实世界数据特征的抽象,用于描述数据的结构、数据之间的关系以及对数据的操作等。它是数据库系统的核心和基础。

主要的数据模型有:

  1. 层次模型:采用树形结构来组织数据,每个节点表示一个实体,节点之间的关系是一对多的。例如,一个公司的部门结构,总部下设多个分部,每个分部又下设多个科室,就可以用层次模型来表示。
  2. 网状模型:采用网状结构(多对多关系)来组织数据,允许一个节点有多个父节点。适用于表示复杂的多对多关系,如学生与课程的选课关系,一个学生可以选多门课程,一门课程也可以被多个学生选。
  3. 关系模型:用二维表(关系)来表示数据和数据之间的关系,表中的每行称为一条记录(元组),每列称为一个属性(字段)。关系模型具有结构简单、操作方便等优点,是目前应用最广泛的数据模型。例如,学生表(学号、姓名、年龄、性别)就是一个关系模型。
  4. 面向对象模型:将现实世界中的实体抽象为对象,每个对象包含属性和方法,对象之间可以通过消息进行通信。它能更好地描述复杂的现实世界实体,适用于多媒体、工程设计等领域。

五、数据库的特点

  • 数据结构化:数据库中的数据是按照一定的数据模型进行组织和存储的,具有整体的结构化,而不是零散的、无组织的。
  • 数据的共享性高,冗余度低:数据库中的数据可以被多个用户、多个应用程序共享使用,减少了数据的重复存储,降低了数据冗余。
  • 数据独立性高:包括物理独立性和逻辑独立性。物理独立性是指用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的;逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的。
  • 数据由 DBMS 统一管理和控制:DBMS 对数据的安全性、完整性、并发控制和恢复等进行统一管理,保证了数据的可靠性和一致性。

六、数据库的应用领域

数据库广泛应用于各个行业和领域:

  • 金融领域:银行、证券等机构用于存储客户信息、交易记录等,支持各种金融业务的开展。
  • 电商领域:存储商品信息、用户订单、物流信息等,为电商平台的运营和管理提供数据支持。
  • 教育领域:管理学生信息、教师信息、教学资源等,辅助学校的教学和管理工作。
  • 医疗领域:存储患者病历、诊断记录、药品信息等,便于医生查询和分析患者病情,提高医疗服务质量。

总之,数据库是信息时代数据管理的核心技术,它的发展和应用极大地提高了数据处理的效率和准确性,为各种信息系统的建设提供了坚实的基础。

二.MySql

一、开源免费,降低中大型项目成本

MySQL 是开源数据库(遵循 GPL 协议),企业无需支付高昂的商业授权费用(如 Oracle 的按核心收费模式)。对于中大型项目而言,数据量和并发量增长会伴随服务器规模扩张,开源特性可显著降低长期成本(包括 licensing 费用、定制化开发成本等)。
此外,开源意味着代码透明,企业可根据自身需求修改源码(如优化特定场景的存储引擎逻辑),这对中大型系统的深度定制化需求至关重要。

二、跨平台与兼容性,适配中大型系统复杂环境

中大型系统的部署环境往往复杂(可能涉及 Linux、Unix、Windows 等多操作系统,甚至混合云架构),而 MySQL 具备极强的跨平台性:

  • 支持主流操作系统(Linux、Windows、macOS、Solaris 等);
  • 兼容多种硬件架构(x86、ARM 等),可适配中大型系统的服务器集群(物理机、虚拟机、容器化部署均可);
  • 与主流开发语言(Java、Python、PHP、Go 等)无缝集成,且支持 ODBC、JDBC 等标准接口,便于中大型项目的多语言协同开发。

三、高性能与稳定性,支撑中大型系统的高并发需求

MySQL 经过数十年迭代(尤其是 InnoDB 引擎成熟后),性能已能满足中大型系统的核心需求:

  • 存储引擎优化:默认的 InnoDB 引擎支持事务(ACID 特性)、行级锁、聚簇索引,可高效处理高并发写操作(如电商订单提交、金融交易记录);针对读多写少场景,也可选择 MyISAM 引擎(虽不支持事务,但读性能更优)。
  • 查询优化:内置优化器可自动优化 SQL 执行计划,支持索引(B + 树、哈希索引等)、分区表(按范围、列表等拆分大表),减少大表查询的 IO 开销。
  • 缓存机制:通过 InnoDB 缓冲池(Buffer Pool)缓存热点数据,减少磁盘 IO;支持查询缓存(虽在 8.0 版本移除,但可通过 Redis 等外部缓存补充),提升重复查询效率。

实际案例中,优化后的 MySQL 集群可支撑每秒数万次并发请求(如中小型电商平台的峰值场景),且数据量可达千万至亿级(配合分库分表可扩展至更大规模)。

四、可扩展性强,满足中大型系统的规模增长

中大型系统的核心挑战之一是 “数据量与并发量随业务增长而扩张”,MySQL 通过多种机制支持横向 / 纵向扩展:

  • 主从复制与读写分离:1 主多从架构中,主库负责写操作,从库负责读操作,可通过增加从库数量扩展读能力(如电商详情页查询、报表统计等读请求分流到从库)。
  • 分库分表:当单表数据量超千万级时,可通过中间件(如 Sharding-JDBC、MyCat)实现分库分表(按用户 ID 哈希、时间范围等规则拆分),将数据分散到多个物理库表,避免单库压力过大。
  • 集群方案:支持 MySQL Cluster(基于 NDB 引擎的高可用集群)、MGR(MySQL Group Replication,组复制,支持自动故障转移),提升系统可用性(避免单点故障)。

这些特性使 MySQL 能从 “中小型系统” 平滑过渡到 “中大型系统”,无需彻底更换数据库(降低迁移成本)。

五、丰富的生态与工具链,提升中大型项目效率

中大型项目的开发、运维复杂度高,而 MySQL 的生态系统可显著降低这些成本:

  • 开发工具:支持 Navicat、DBeaver 等可视化工具,便于 SQL 编写、数据导入导出;与主流 IDE(如 IntelliJ IDEA、VS Code)集成,提升开发效率。
  • 监控与运维:提供 Percona Monitoring and Management(PMM)、MySQL Workbench 等工具,可监控数据库性能(CPU、内存、IO 使用率)、慢查询日志,便于中大型集群的问题排查。
  • 云服务支持:主流云厂商(AWS、阿里云、腾讯云等)均提供 MySQL 托管服务(如 RDS for MySQL),支持自动备份、扩容、故障转移,减少中大型项目的运维人力投入。

六、社区支持与版本迭代,保障长期可用性

MySQL 拥有全球最大的开源数据库社区之一,意味着:

  • 遇到问题时可快速获取解决方案(如 Stack Overflow、官方文档、社区论坛);
  • 版本迭代快(目前最新稳定版为 8.0+),持续优化性能(如 InnoDB 并行查询、向量搜索支持)、安全性(如密码强度增强、审计日志),适配中大型系统的新需求(如 AI 场景下的向量数据存储)。

三.MYSQL的安装配置(社区版免费)

1. 下载 MySQL 安装包
  • 访问 MySQL 官方下载页:MySQL Community Server
  • 选择对应版本(推荐 8.0 及以上),点击 “Download”,选择 “Windows (x86, 64-bit), ZIP Archive”(免安装版,配置更灵活)。
2. 解压与配置环境变量
  • 将下载的 ZIP 包解压到自定义目录(如D:\mysql-8.0.36-winx64)。
  • 配置环境变量:
    1. 右键 “此电脑”→“属性”→“高级系统设置”→“环境变量”。
    2. 在 “系统变量” 中找到 “Path”,点击 “编辑”→“新建”,添加 MySQL 的bin目录路径(如D:\mysql-8.0.36-winx64\bin)。
3. 初始化配置文件
  • 在 MySQL 根目录(如D:\mysql-8.0.36-winx64)下新建my.ini配置文件,内容如下:
[mysqld]
# 设置端口号(默认3306)
port=3306
# 设置MySQL安装目录
basedir=D:\mysql-8.0.36-winx64
# 设置数据存储目录(需手动创建data文件夹)
datadir=D:\mysql-8.0.36-winx64\data
# 允许最大连接数
max_connections=200
# 服务端字符集(推荐utf8mb4,支持emoji)
character-set-server=utf8mb4
# 默认存储引擎
default-storage-engine=INNODB
[mysql]
# 客户端字符集
default-character-set=utf8mb4
4. 初始化与安装服务
  • 管理员身份打开命令提示符(CMD):
    1. 进入 MySQL 的bin目录:cd D:\mysql-8.0.36-winx64\bin
    2. 初始化数据库(生成临时密码,需记录):
      mysqld --initialize --console
      (注意:临时密码在输出日志中,格式如root@localhost: 临时密码
    3. 安装 MySQL 服务:mysqld --install MySQL80(“MySQL80” 为服务名,可自定义)
    4. 启动服务:net start MySQL80
5. 登录与修改密码
  • 登录 MySQL:mysql -u root -p,输入初始化时的临时密码。
  • 修改密码(替换新密码为自定义密码):
    ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
  • 退出登录:exit

二、Linux 系统(CentOS 7/8)安装配置 MySQL

1. 卸载旧版本(如有)
# 检查是否安装过MySQL
rpm -qa | grep mysql
# 卸载(替换包名)
rpm -e --nodeps 包名
# 删除残留文件
rm -rf /var/lib/mysql
2. 安装 MySQL
  • 方式 1:通过 YUM 源安装(推荐):

# 下载MySQL YUM源(以8.0为例)
wget https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
# 安装源
rpm -ivh mysql80-community-release-el7-7.noarch.rpm
# 安装MySQL服务
yum install -y mysql-community-server

方式 2:编译安装(适合需要定制化的场景,略复杂,此处不展开)

3. 启动服务与设置开机自启
# 启动服务
systemctl start mysqld
# 查看状态(确认是否启动成功)
systemctl status mysqld
# 设置开机自启
systemctl enable mysqld
4. 获取临时密码与修改密码
  • 查看临时密码:grep 'temporary password' /var/log/mysqld.log
  • 登录并修改密码:
# 登录
mysql -u root -p
# 修改密码(需包含大小写字母、数字、特殊字符)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass@123';
5. 配置远程访问(可选)
  • 允许 root 用户远程登录(生产环境建议创建专用用户):
# 切换到mysql库
use mysql;
# 修改root用户的主机限制('%'表示允许所有IP)
update user set host='%' where user='root';
# 刷新权限
flush privileges;

开放防火墙 3306 端口:

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload

三、macOS 系统安装配置 MySQL

1. 下载与安装
  • 方式 1:通过官方 DMG 包安装:

    • 下载地址:MySQL for macOS
    • 选择 “macOS 13 (ARM, 64-bit), DMG Archive”(根据系统芯片选择),双击安装,按提示完成步骤(注意记录临时密码)。
  • 方式 2:通过 Homebrew 安装(更便捷):

# 安装Homebrew(如未安装)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 安装MySQL
brew install mysql
2. 启动服务
  • DMG 安装:通过 “系统偏好设置”→“MySQL” 启动服务。
  • Homebrew 安装:brew services start mysql
3. 初始化与修改密码
  • 登录(Homebrew 安装默认无密码,直接回车):mysql -u root -p
  • 设置密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

四、通用配置优化(适合中大型系统)

my.ini(Windows)或my.cnf(Linux/macOS)中添加以下配置,提升性能:

[mysqld]
# 缓存设置(根据服务器内存调整,如8GB内存可设4G)
innodb_buffer_pool_size=4G
# 并发连接数(根据业务需求调整)
max_connections=1000
# 慢查询日志(记录执行时间>1秒的SQL,便于优化)
slow_query_log=1
slow_query_log_file=/var/log/mysql/slow.log
long_query_time=1
# 关闭DNS反向解析(加速连接)
skip-name-resolve

五、验证安装成功

  • 登录 MySQL:mysql -u root -p,输入密码后若能进入 MySQL 命令行(显示mysql>),则安装成功。
  • 查看版本:select version();

通过以上步骤,可完成 MySQL 在不同系统的基础安装与配置。对于中大型系统,建议额外配置主从复制、定期备份(如mysqldump)和监控工具(如 PMM),确保数据安全与性能稳定。

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

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

相关文章

Java 中表示数据集的常用集合类

Java 中表示数据集的常用集合类 Java 集合框架提供了多种数据结构来表示和操作数据集,每种集合类都有其特定的用途和性能特征。以下是主要的集合类及其特点: 一、List 接口及其实现类 1. ArrayList 特点:基于动态数组实现优点:随机…

Django REST框架核心:GenericAPIView详解

Django REST framework (DRF) 中 GenericAPIView 的源码核心部分。 它是所有“泛型视图”的基础类,比如常用的 ListAPIView、RetrieveAPIView、CreateAPIView 都是继承自它。🌟 作用继承自 APIView,因此仍然是一个标准的 DRF 视图。提供了常用…

深入解析HashMap的存储机制:扰动函数、哈希计算与索引定位

今天复习了一下HashMap的部分,写一篇博客记录一下今天学习内容虽然之前学习过,但由于后来没怎么使用过而且也没复习基本忘得差不多了在Java的HashMap中,高效存储键值对的核心在于哈希算法和索引定位。本文将结合源码逐步拆解存储流程&#xf…

【机器学习 / 深度学习】基础教程

阶段一:机器学习 / 深度学习基础教程定位:针对准备进入 AI多智能体开发 的初学者,打牢机器学习与深度学习的基础。一、为什么需要学习机器学习/深度学习 在进入智能体(Agent)开发之前,必须具备一定的 机器学…

ESP32应用——HTTP client(ESP-IDF框架)

目录 一、前言 二、URL 2.1 URL简介 2.2 URL示例 三、HTTP 3.1 HTTP协议概述 3.2 HTTP的工作原理 3.2.1 HTTP 请求-响应流程 3.2.2 HTTP 请求结构 3.2.3 HTTP请求方法 3.2.4 HTTP响应结构 3.2.5 HTTP状态码 四、ESP HTTP 客户端流程 五、ESP HTTP 客户端实战解析…

动学学深度学习07-现代卷积神经网络

动学学深度学习pytorch 参考地址:https://zh.d2l.ai/ 文章目录动学学深度学习pytorch1-第07章-现代卷积神经网络1. AlexNet1.1 AlexNet 的核心贡献是什么?1.2 AlexNet 与 LeNet 的主要区别有哪些?1.3 为什么 AlexNet 需要 GPU 训练&#xff1…

详细讲解Java中的反射和经典面试题(保姆级别)

1.1 反射的概述:专业的解释(了解一下):是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意属性和方法;这种动态获取…

MyCAT完整实验报告

MyCAT完整实验报告 ‍ 前言 刚刚看了一下前面的那篇MyCAT的文章 感觉有一些问题 所以拿出一篇文章再说一下 单独构建了完整的实验环境 这样会全面一点 ‍ 安装MyCAT #跳过‍ 主从配置 #不多追溯 因为我们选择的主从 也可以做双主机 但我们后边再说‍ 环境搭建 一、环境规划 服务…

机器翻译论文阅读方法:顶会(ACL、EMNLP)论文解析技巧

更多内容请见: 机器翻译修炼-专栏介绍和目录 文章目录 一、论文选择:快速判断论文价值 1.1 关注核心会议与子领域 1.2 筛选标准 1.3 预读筛选 1.4 快速定位关键信息 二、精读解析 2.1 问题定义(5分钟) 2.2 方法解剖(15分钟) 2.3 实验深挖(20分钟) 2.4 批判性思考(10分…

Transformer模型实战篇

引入 基于Transformers的NLP解决方案的步骤如下:(以文本分类为例) 导入相关包,General,可以询问ai需要导什么包加载数据集,Data_loader,Datasets数据集划分,测试机,验证集…

深入(流批【牛批】框架)Flink的机制

flink本身是专注有状态的无限流处理,有限流处理【batch批次】是无限流处理的一中特殊情况!应用场景实时ETL 集成流计算现有的诸多数据通道和SQL灵活的加工能力,对流式数据进行实时清洗、归并和结构化 处理;同时,对离线…

Git 2.15.0 64位安装步骤Windows详细教程从下载到验证(附安装包下载)

一、下载后双击运行 安装包下载:https://pan.quark.cn/s/7200b32a1ecf,找到下载好的文件:​Git-2.15.0-64-bit.exe​双击这个文件,就会弹出安装向导窗口,点 ​​“Next”(下一步)​​ 二、选择…

在职老D渗透日记day23:sqli-labs靶场通关(第29关-31关)http参数过滤

5.29.第29关 http参数过滤 闭合5.29.1.手动注入(1)判断注入类型、注入点闭合(2)有回显,优先用联合查询注入,判读字段数?id1&id2 order by 3 -- ?id1&id2 order by 4 --(3)…

Spring Boot整合Amazon SNS实战:邮件订阅通知系统开发

Spring Boot整合Amazon SNS实战引言配置服务总结新用户可获得高达 200 美元的服务抵扣金 亚马逊云科技新用户可以免费使用亚马逊云科技免费套餐(Amazon Free Tier)。注册即可获得 100 美元的服务抵扣金,在探索关键亚马逊云科技服务时可以再额…

LeetCode_动态规划1

动态规划1.动态规划总结1.1 01背1.1.1 二维数组1.1.2 一维数组1.2 完全背包2.斐波那契数(力扣509)3.爬楼梯(力扣70)4.使用最小花费爬楼梯(力扣746)5.不同路径(力扣62)6.不同路径 II(力扣63)7.整数拆分(力扣343)8.不同的二叉搜索树(力扣96)9.分割等和子集(力扣416)10.最后一块石…

【STM32】HAL库中的实现(九):SPI(串行外设接口)

SPI 接口通信原理 SPI(Serial Peripheral Interface)是全双工主从通信协议,特点是: 信号线功能SCK串行时钟MOSI主设备输出,从设备输入MISO主设备输入,从设备输出CS(NSS)片选信号&am…

Git常用操作大全(附git操作命令)

Git常用操作大全 一、基础配置 1.1 设置用户名和邮箱 git config --global user.name "你的名字" git config --global user.email "你的邮箱"1.2 查看配置 git config --list二、仓库管理 2.1 初始化本地仓库 git init2.2 克隆远程仓库 git clone <仓库…

详解flink table api基础(三)

文章目录1.使用flink的原因&#xff1a;2. Flink支持两种模式&#xff1a;3. flink table api工作原理&#xff1a;4. Flink table api 使用5. select语句&flink table api&#xff1a;6. 使用flink table api 创建table7. 使用flink table api 写流式数据输出到表或sink8.…

Vue2+Vue3前端开发_Day5

参考课程: 【黑马程序员 Vue2Vue3基础入门到实战项目】 [https://www.bilibili.com/video/BV1HV4y1a7n4] ZZHow(ZZHow1024) 自定义指令 基本语法&#xff08;全局 & 局部注册&#xff09; 介绍&#xff1a;自己定义的指令&#xff0c;可以封装一些 DOM 操作&#xff0c…

机器学习--决策树2

目录 第一代裁判&#xff1a;ID3 与信息增益的 “偏爱” 第二代裁判&#xff1a;C4.5 用 “增益率” 找平衡 第三代裁判&#xff1a;CART 的 “基尼指数” 新思路 遇到连续值&#xff1f;先 “砍几刀” 再说 给决策树 “减肥”&#xff1a;剪枝的学问 动手试试&#xff1…