【MySQL — 数据库基础】MySQL的安装与配置 & 数据库简单介绍

news2025/2/6 14:29:05

     数据库基础     


    本节目标    

  •  掌握关系型数据库,数据库的作用
  • 掌握在Windows和Linux系统下安装MySQL数据库
  • 了解客户端工具的基本使用和SQL分类
  • 了解MySQL架构和存储引擎

     1. 数据库的安装与配置    


    1.1  确认MYSQL版本    


 


处理无法在 cmd 中使用 mysql 命令的情况,就需要去配置环境:


     (2) 官网下载相应的版本    


MySQL官网






     下载历史版本    


停止之后,原来版本的MySQL占用的资源和端口就会释放,就可以让新下载的MySQL来使用资源和端口;


    1.2 安装数据库服务    


window环境下各种环境安装及使用


  • 1. 安装包:






确认之后,可以根据相应的安装路径去查看是否有文件



设置密码之后,来到下面的页面:



在配置第一个错误日志路径时,可以在本机上创建一个文件夹,来存放日志






运行数据库后,有对应操作,就会在这些设置好的路径生成日志;





    1.3 检查数据库服务     


 安装和配置都完成之后,我们需要到服务列表中检查一下:

在服务中,刷新之后,可以看到MYSQL80(刚刚配置时的serverID)是一个正在运行的状态



也可以先打开文件位置


一般使用 UniCode 编码的快捷方式打开MYSQL

    1.4 通过配置文件修改默认配置    


 如果以后要修改其他大版本,强烈建议修改;


  • 我们之前配置数据目录的时候,默认的路径是在C盘;
  • 数据目录是MYSQL工作的主要目录,非常重要,所有的数据都会在这个目录中存储,如果它在系统盘,我们就需要手动指定它到其他的目录;
  • 刚刚没有修改,是因为它会在这个目录中,自动生成一个配置文件,我们需要找到这个配置文件,先打开文件看看目录结构是什么;



MYSQL全局配置文件


我们可以使用文本编辑器/记事本打开这个配置文件:

当MYSQL启动的时候,会读取这个文件的内容,作为启动的默认值,默认值要在这个文件中配置,所以每次改动默认配置,都需要重启一下MYSQL服务,以便配置生效;


如果是以#开头,就表示注释,所有客户端相关的配置

什么是客户端程序呢?我们打开安装目录:

这些以exe为后缀的程序,除了极个别的,都是客户端程序,它们有不同的作用,要连接服务器,要备份服务器,要导出,要查看日志,都是通过这些客户端程序



我们查看快捷方式中的属性,可以发现快捷方式的目标:


只要mysql.exe程序运行,就会读取配置文件[client]节点下的这些相应的配置,如果要指定不同的端口号,也需要加不同的选项,因为MYSQL服务器默认开启的是3306端口,所以默认的端口号是3306


[client]针对所有客户端程序,所有客户端程序,都会读取[client]节点下的配置


可执行程序 mysqld 是服务端程序,跟其他客户端程序不一样,运行就意味着MYSQL服务启动了;

 mysqld 节点下面的所有配置,都是服务于MYSQL的配置;d的意思是daemon,就是“守护”的意思,服务器启动,[mysqld]也跟着启动,和服务器的生命周期是一样的,只在后台运行,服务器关闭, mysqld 也会跟着关闭;


接下来,我们需要修改一些配置文件;这些配置修改的时候,我们需要备份一份my.ini 的原始文件:

通常我们会配置一些常用的选项,在修改配置文件之前,一定要把原来的配置文件备份一份,防止改错了导致服务器启动失败,如果改错了可以快速回退到修改前的版本;


我们来看一下,配置文件中的哪一些配置需要我们去修改:


1. 如果要修改端口号,直接在这里修改即可(1025—65535,因为1024之前是系统占用的一些端口),开发机应该是不需要修改的,但是在线上部署的时候,有些对外网公布端口号的时候,一般都是需要修改的,因为3306是默认端口,在网络扫描的时候会扫描这个端口,扫描会给系统带来一些安全的隐患;


    2. 配置数据目录的路径(强烈建议改,否则一些大数据会占用大量内存空间)  





如果出现没有权限修改的问题,可以把文件拖拽到桌面进行修改,修改完成并保存后,再拖拽回原文件;


跟配置文件目录有一个同级目录Data:


复制Data,然后粘贴到刚刚修改的目标目录中


复制好后,修改目录的名字为刚刚数据目录的目录名


因为我们设置了一些用户名和密码,这些密码都会存储在系统库中,就是在默认的数据目录中,所以整体拷贝刚刚的Data到目标路径中,就不会出错


  • 存储引擎用于处理数据,MYSQL怎么解析,怎么存储,用什么数据结构来存储,都是由存储引擎决定的,每一个存储引擎对数据的增删改查是不一样的;
  • 存储引擎是MYSQL的核心;



不同版本的字符集是不一样的,如果配置不好,可能无法将中文写入数据库中,默认在 8.0版本是 utf8mb4 这个字符编码集,涉及到解码编码的,都会指定编码集,类似于协议


强烈建议手动指定编码集,MYSQL5.7默认编码集是latin1,意味着不支持中文,无法写入中文,如果要写入中文,一定要在配置文件中手动指定编码集为utf8mb4;在MYSQL8.0默认编码集是utf8mb4,不过不管是哪个版本的MYSQL,都建议手动指定


修改好配置后,重新启动MYSQL

重新启动后,也会在我们指定的数据目录中,找到相应的Data目录,就可以完成相应读取了


我们重新登录一下:

访问成功,就说明没有问题了;这就是整个安装过程;


    2.数据库简介    


     2.1 什么是数据库    


数据库是20世纪60年代末发展起来的一项重要技术,已经成为计算机科学与技术的一个重要分支。数据库技术主要是用来解决数据处理的非数值计算问题,数据处理的主要内容是数据的存储、查询、修改、排序和统计等。


    2.2 为什么要使用数据库    


1.数据持久化

数据库可以将数据保存在存储介质中,即使应用程序关闭或服务器重启,数据也不会丢失。

2.数据结构化

数据库能够以结构化的方式存储数据,使得数据易于管理和查询。

3.数据完整性

数据库管理系统(DBMS)提供了数据完整性的保障,确保数据的准确性和一致性。

4.并发控制

数据库可以处理多个用户或进程同时访问和修改数据,同时确保数据的一致性。

5.安全性

数据库提供了多种安全机制,如访问控制、加密等,保护数据不被未授权访问。

6.可扩展性

随着数据量的增长,数据库可以水平或垂直扩展,以适应不断增长的数据需求。

7.备份和恢复

数据库支持数据的备份和恢复,以防数据丢失或损坏。

8.查询优化

数据库系统提供了高效的查询优化器,可以快速执行复杂的查询操作。

9.事务管理

大部分关系型数据库都支持事务,确保一系列操作要么完全成功,要么完全失败,提高了操作的可靠性。

10.多用户支持数据库允许多个用户同时访问和操作数据,适合多用户环境。

     2.3 主流数据库    


    2.3.1 关系型数据库    


    什么是关系型数据库    


  • 关系型数据库是指采用了关系模型(就是一个二维表格模型)来组织数据的数据库,以行和列的形式存储数据。
  • 关系模型可以简单理解为二维表格模型,而一个关系型数据库就是由二维表,及其之间的关系组成的一个数据组织。

每个表中的每一条记录称为一行数据,每一个数据行由一个或多个列组成;

  • 上图,左边表的班级编号列,对应到右边表的编号列,对于这种情况,就叫两个二维表之间建立了联系;
  • 两张二维表建立了关联关系,把数据组织在了一起,那么这两张表,在一个数据库中就称它们为关系型数据库;

那能不能把左边表中的班级编号列,替换成班级名称呢?可以,但是这样不好修改,在后面学数据库设计,会详细讲解这样改带来的一些问题;


    关系型数据库种类     



    2.3.2 非关系型数据库    


数据库引擎排名


 

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

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

相关文章

实测数据处理(BP算法处理)——SAR成像算法系列(九)

系列文章目录 《SAR学习笔记-SAR成像算法系列(一)》 《后向投影算法(BPA)-SAR成像算法系列(二)》 《后向投影算法(续)-SAR成像算法系列(八)》 文章目录 一…

(数据结构与算法)如何提高学习算法的效率?面试算法重点有哪些?面试需要哪些能力?

面试官眼中的求职者 通过对你算法的考察!!!! 缩进太多!!一般不要超过三层!!!缩进越少,bug越少;逻辑比较复杂,把这些包装成为函数&…

Day05:缓存双写一致性

redis做为缓存,mysql的数据如何与redis进行同步呢?(双写一致性–强一致) 一种是一致性要求比较高的同步方案,另一种是允许延迟一致的异步通知。 什么是双写一致性? 双写一致性:当修改了数据库…

vue3+typescript自定义input组件

官方文档:https://cn.vuejs.org/guide/components/events#%E5%AE%9A%E4%B9%89%E8%87%AA%E5%AE%9A%E4%B9%89%E4%BA%8B%E4%BB%B6 触发与监听事件​ 在组件的模板表达式中,可以直接使用 $emit 方法触发自定义事件 (例如:在 v-on 的处理函数中)…

代码之丑第一期-缩进

各位小伙伴们,大家好!咱今天就算是正式开张了。实不相瞒,第一期的内容早已写好,但唯独这开篇方式,笔者想了好些时间,包括但不限于如下风格: 斗破苍穹式(已经三刷):代码优雅之力,三段!级别:低级!百年孤独式(困扰于错综复杂的人物关系,放弃):多年以后,面对吐槽…

idea2024加载flowable6.8.1.36遇到的问题-idea启动flowable问题flowable源码启动问题

代码下载地址: https://gitee.com/hanpenghu_admin_admin/flowable6.8.1.git 1.首先是通过顶层目录maven clean install 发现很多子模块并不会install本地mavenStore库,这导致了,一堆相互依赖的模块报错找不到,所以需要根据报错…

Vue.js 中 v-for 指令的三种常见用法详解及key、value、id的作用

作者:CSDN-PleaSure乐事 欢迎大家阅读我的博客 希望大家喜欢 使用环境:WebStorm 目录 遍历数组 介绍 代码 遍历对象数组 介绍 代码 遍历对象本身 介绍 代码 效果呈现 key、value、id的作用 1. value 2. key 3. id 在 Vue.js 中&#xff0c…

【论文投稿】国产游戏技术:迈向全球引领者的征途

【IEEE出版南方科技大学】第十一届电气工程与自动化国际会议(IFEEA 2024)_艾思科蓝_学术一站式服务平台 更多学术会议论文投稿请看:https://ais.cn/u/nuyAF3 目录 国产游戏技术能否引领全球? 一、国产游戏技术的崛起之路 1.1 初期探索与积…

React的ts文件中通过createElement拼接一段内容出来

比如接口返回一个值 const values [23.00, 40.00/kg];想做到如下效果, 如果单纯的用render渲染会很简单, 但是在ts文件中处理,所以采用了createElement拼接 代码如下: format: (values: string[]) > {if (!values || !val…

江协科技最新OLED保姆级移植hal库

江协科技最新OLED移植到hal库保姆级步骤 源码工程存档 工程和源码下载(密码 1i8y) 原因 江协科技的开源OLED封装的非常完美, 可以满足我们日常的大部分开发, 如果可以用在hal库 ,将是如虎添翼, 为我们开发调试又增加一个新的瑞士军刀, 所以我们接下来手把手的去官网移植源码…

HarmonyOS:使用Emitter进行线程间通信

Emitter主要提供线程间发送和处理事件的能力,包括对持续订阅事件或单次订阅事件的处理、取消订阅事件、发送事件到事件队列等。 一、Emitter的开发步骤如下: 订阅事件 import { emitter } from kit.BasicServicesKit; import { promptAction } from kit.…

Wi-Fi 进化论:从过去到未来(6/10)

Wi-Fi(发音: /ˈwaɪfaɪ/),在中文里又称作“移动热点”,是Wi-Fi联盟制造商的商标作为产品的品牌认证,是基于IEEE 802.11标准的无线局域网通信技术 [6]。基于两套系统的密切相关,也常有人把Wi-F…

【C++初阶】第5课—动态内存管理

文章目录 1. 内存分布2. C语言动态内存管理3. C内存管理方式3.1 new/delete操作内置类型3.2 new和delete操作自定义类型 4. operator new和operator delete函数5. new和delete的实现原理6. malloc/free和new/delete的区别7. 定位new表达式(了解即可) 1. 内存分布 先来做一个关于…

学习threejs,设置envMap环境贴图创建反光效果

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.CubeTextureLoader 立…

Matlab Simulink HDL Coder FPGA开发初体验—计数器

目录 一、Simulink设计及仿真二、Verilog HDL代码转换1、参数配置2、HDL代码生成 三、ModelSim仿真分析1、使用自己编写的Testbench文件进行仿真2、使用HDL Coder生成的Testbench文件进行仿真 前言 Simulink HDL Coder‌是一款将Simulink和Stateflow模型转化为可综合的Verilog和…

【C语言】扫雷游戏(一)

我们先设计一个简单的9*9棋盘并有10个雷的扫雷游戏。 1,可以用数组存放,如果有雷就用1表示,没雷就用0表示。 2,排查(2,5)这个坐标时,我们访问周围的⼀圈8个位置黄色统计周围雷的个数是1。排查(8,6)这个坐标时&#xf…

实现点名神器的pyqt6实现

利用python gui创建点名神器,包含加分、导出加分记录、清除加分记录。 点名页面 首先导入学生信息 导入成功 开始点名 点击停止 点过之后,点击加分 加完分 查看加分记录 可以直接进入导出记录和清除历史。 此文到此结束,想要源码的请私聊我&a…

【UE5 C++】判断两点连线是否穿过球体

目录 前言 原理 代码 测试 结果 前言 通过数学原理判断空间中任意两点的连线是否穿过球体,再通过射线检测检验算法的正确性。 原理 (1)设球体球心的坐标为 ,半径为r; (2)设线段中A点的坐…

【AI】数据,算力,算法和应用(3)

三、算法 算法这个词,我们都不陌生。 从接触计算机,就知道有“算法”这样一个神秘的名词存在。象征着专业、权威、神秘、高难等等。 算法是一组有序的解决问题的规则和指令,用于解决特定问题的一系列步骤。算法可以被看作是解决问题的方法…

计算机的错误计算(一百七十一)

摘要 探讨 MATLAB 中秦九韶(Horner)多项式的错误计算。 例1. 用秦九韶(Horner)算法计算(一百零七)例1中多项式 直接贴图吧: 这样,MATLAB 给出的仍然是错误结果,因为准…