MySQl基础----Linux下搭建mysql软件及登录和基本使用(附实操图超简单一看就会)

绪论​
涓滴之水可磨损大石,不是由于他力量强大,而是由于昼夜不舍地滴坠。 只有勤奋不懈地努力,才能够获得那些技巧。 ——贝多芬。新开MySQL篇章,本章非常基础包括如何在Linux上搭建(当然上面的SQL语句你在其他能执行SQL语句的软件上也能正常执行,并非一定要在Linux环境下)和mysql的基本使用,但同时需要一定的Linux基础,所以假若你没学习过Linux建议查看我的Linux专栏来巩固一定的Linux知识。我将持续更新期待你的关注。
在这里插入图片描述
话不多说安全带系好,发车啦(建议电脑观看)。

思维导图:

请添加图片描述


1.清理陈旧环境

在这里插入图片描述

  1. 查看mysql安装包,若有则删除
查看:
rpm -qa | grep mysql

在这里插入图片描述

删除:
rpm -qa | grep mysql | xargs yum -y remove #xargs卸载程序

在这里插入图片描述

  1. 查看是否存在mysql的配置文件 /etc/my.cnf 若有就需要再删除该文件
    在这里插入图片描述
    一般mysql的数据会放到 /var/lib/mysql/ 中,当删除了mysql后数据仍然可能会存在(可保留不删除)
    在这里插入图片描述

2.获取更新mysql官方yum源并实现安装

  1. 查看自身系统版本:
cat /etc/redhat-release

在这里插入图片描述

  1. 获取匹配自身版本的MySQL安装包

访问MySQL开发者专区:https://dev.mysql.com/downloads/repo/yum/(附:可能需要注册oracle,自行注册登录下即可)
选择匹配的mysql版本下载即可,centos7可选:
在这里插入图片描述
mysql80-community-release-el7-1.noarch.rpm,其中:mysql80: MySQL版本号,默认是MySQL8.0版本;el7 : 其中el 是 Enterprise Linux的编写,7表⽰ Linux⼤版本号,⽐如el6 表⽰ Linux6, el7表⽰Linux7, e8表⽰Linux8, el9表⽰Linux9,;‘fc’ 则表⽰ Fedora;el7-1:表⽰MySQL仓库配置RPM包的第1次更新

  1. 将下载好的mysql的rpm安装包上传到Linux中

通过rz指令将本地文件上传到Linux服务器中
在这里插入图片描述
附:若没有rz软件则先安装:

yum install -y lrzsz
  1. 更新mysql到yum安装列表中

查看yum源安装列表:ls /etc/yum.repos.d/
下图一开始没有mysql,也就无法安装,所以需要rpm指令让mysql安装包放进安装列表中去使能够被yum安装

rpm指令:
rpm -ivh 下载好的mysql rpm安装包
rpm -ivh mysql84-community-release-el7-1.noarch.rpm

在这里插入图片描述
当执行指令后,再次查看安装列表就多了mysql的(上图最后一个框)

  1. 开始安装

正常yum直接安装:

yum install -y mysql-community-server

查看是否成功的方法查看下述文件和程序是否存在:
在这里插入图片描述

3.启动mysql

语法:

systemctl start mysqld

查看是否启动mysql进程(mysqld使mysql的服务端):

ps ajx | grep mysqld

在这里插入图片描述

4.常规登录

登录语法:

mysql -uroot -p

此时发现需要输密码:
⾸次安装成功,密码可能为以下几种情况:

  1. MySQL把root⽤⼾的默认密码保存在错误⽇志中
    通过日志查看密码:
grep 'temporary password' /var/log/mysqld.log

就能查看到密码:
在这里插入图片描述
所以输入密码就登录上了(此处输入密码同样是不显的)
在这里插入图片描述

4.1登录进去mysql后要先修改成自己的密码:

对于validate_password组件是默认安装的,实现的默认密码策略,要求密码⾄少包含1个⼤写字⺟、1个⼩写字⺟、1个数字和1个特殊字符,密码总⻓度⾄少为8个字符。
设置密码语法:

ALTER USER 'root'@'localhost' IDENTIFIED BY '输入自己的密码';

4.2若想设置成简单的密码:

默认密码策略:密码策略分为 LOW 、 MEDIUM (默认)和 STRONG ,分别⽤0,1(默认),2表⽰。0表⽰只校验密码⻓度,⻓度最⼩为8,所以以后要设置简单密码时还需要修改密码的⻓度限制。他们分别⽤两个系统变量validate-password.policy和validate_password.length表⽰。

例:如果我们要在开发环境设置如123456的简单密码那么就要修改默认密码策略,我们只需要设置:

  1. validate-password.policy为LOW
  2. validate_password.length为小于所需长度的值即可

具体如:

show variables like 'validate_password.policy'; #查看密码策略

show variables like 'validate_password.length'; #查看当前密码⻓度限制
set global validate_password.policy=0; #策略设置为LOW

set global validate_password.length=4; #密码⻓度最少为4位(系统限制不能⼩于4位)

在修改密码为’123456’即可成功

  1. 若不存在日志的话:可能是不用输入密码直接回车就能直接登录进去

  2. 倘若还不行就修改mysql的配置文件:

vim /etc/my.cnf #打开mysql配置文件
#在最后一栏配置加入选项:
skip-grand-tables #跳过密码认证

如下:
在这里插入图片描述
重启mysql服务,让配置文件生效:

systemctl restart mysqld #重启
#或者先关闭在开启
systemctl stop mysqld
systemctl start mysqld
# 再打开就直接回车即可进入
mysql -uroot -p #-u后面加用户

5.mysql的配置文件

同样在 /etc/my.cnf文件中设置
添加如下选项(设置端口、编码方式和引擎):
在这里插入图片描述
附:还能设置能开机启动:

systemctl enable mysqld
systemctl daemon-reload

6.连接服务器具体操作:

mysql -h 127.0.0.1 -P 3306 -u root -p
-h:指明登录部署了mysql的服务主机
-P:指明访问的端口
-u:指明登录用户
-p:指明要输入密码

7.数据库基础

  1. mysql是数据库服务的客户端
  2. mysqld是数据库服务的服务器端
  3. mysql本质:基于C(mysql)S(mysqld)模式的一种网络服务
  4. mysql是一套给我们提供数据存取的服务的网络程序
  5. 数据库一般指的是,在磁盘/内存中存储的特定结构组织的数据,将来在磁盘上存储的一套数据库方案
  6. 理解数据库服务端mysqld、数据库客户端mysql以及底层文件的关系:
    在这里插入图片描述
    一般的文件确实提供了数据的存储功能,但是文件并没有提供非常好的数据管理能力,所以需要一套管理文件的程序,这样我们程序员使用时就能更加快捷的管理好内部存储的数据!
  7. 数据库本质:对数据内容存储的一套解决方案,你给我字段或者要求,数据库直接给出想要的结果。

8.mysql的基础使用

  1. 建立数据库和查看数据库:
create database helloworld; #创建数据库:create database 数据库名

show databases;#查看已存在的数据库,一般会默认存在些 

附:建立数据库,本质就是创建一个文件
在这里插入图片描述

  1. 表格的创建和插入的数据
    在库中存储的数据是以表格的形式存储的,要创建表就得先使用(进入)到数据库中,才能初始化创建表格样式,最后插入数据到表格中。
use helloworld; #使用表

create table student( #创建初始表格
name varchar(32),
age int,
gender varchar(2)
);

show tables;#查看创建好的表

insert into student(name,age,gender) value('张三',20,'男'); #插入数据到表格中:

select * from student;#查看表的内容

在这里插入图片描述
在这里插入图片描述
附:在数据库库中创建表格也就相当于Linux下创建一个文件(mysqld服务端执行的)!
在这里插入图片描述
3. 对此mysql帮我们解决了:程序员就不用再去关心数据文件了,只用去想要对文件做什么,然后通过mysql完成即可。
在这里插入图片描述

附:mysql的数据是按逻辑存储的,通过行列的方式来存储数据的(二维结构),按行进行插入。

9.主流数据库:

  • SQL Sever: 微软的产品,.Net程序员的最爱,中大型项目。
  • Oracle: 甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如MySQL。
  • MySQL:世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用在电商,SNS,论坛。对简单的SQL处理效果好。
  • PostgreSQL :加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研究使用,可以免费使用,修改和分发。
  • SQLite: 是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
  • H2: 是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。

服务器、数据库、表的关系相当于下图:
在这里插入图片描述

所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。

10.MySQL架构

在这里插入图片描述
大致分为三层

  1. 上图在MySQL Server中connection pool用于链接,将所写的SQL语句和底层连接起来。
  2. 再connection pool下面的四个框其本质就是用来解释以及优化所写的SQL语句(类似于编译器)。
  3. 再下面Pluggable Storage Engines是各种存储引擎其作用是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法(类似于计算机中的驱动)。

11.SQL分类

  • DDL:DDL【data definition language】 数据定义语言,用来维护存储数据的结构,代表指令: create, drop, alter
  • DML【data manipulation language】 数据操纵语言,用来对数据进行操作代表指令: insert,delete,update
  • DCL【Data Control Language】 数据控制语言,主要负责权限管理和事务,代表指令: grant,revoke,commit
    DDL可以理解为库、表结构的操作,而DML就是结构体内的操作(理解成对库、表内部数据的操作!)

12.存储引擎

存储引擎是:数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。
Mysql的核心就是插件时的存储引擎,它是支持各种存储引擎的。
查看能使用的所有存储引擎语法:

show engines \G;

在这里插入图片描述


本章完。预知后事如何,暂听下回分解。

如果有任何问题欢迎讨论哈!

如果觉得这篇文章对你有所帮助的话点点赞吧!

持续更新大量MySQL细致内容,早关注不迷路。

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

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

相关文章

初阶 《分支和循环语句》 3.循环语句

3.循环语句 while for do while 3.1 while循环 前面已经掌握了 if 语句: if(条件)   语句; 当条件满足的情况下,if语句后的语句执行,否则不执行;但是这个语句只会执行一次。 由于我们发现生活中很多的实际的例子是:同…

MYSQL 索引下推 45讲

刘老师群里,看到一位小友 问<MYSQL 45讲>林晓斌的回答 大意是一个组合索引 (a,b,c) 条件 a > 5 and a <10 and b123, 这样的情况下是如何? 林老师给的回答是 A>5 ,然后下推B123 小友 问 "为什么不是先 进行范围查询,然后在索引下推 b123?" 然后就…

Leetcode 力扣114. 二叉树展开为链表 (抖音号:708231408)

给你二叉树的根结点 root &#xff0c;请你将它展开为一个单链表&#xff1a; 展开后的单链表应该同样使用 TreeNode &#xff0c;其中 right 子指针指向链表中下一个结点&#xff0c;而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同。 示例 1&#xf…

欢乐打地鼠小游戏html源码

这是一款简单的js欢乐打地鼠游戏&#xff0c;挺好玩的&#xff0c;老鼠出来用鼠标点击锤它&#xff0c;击中老鼠获得一积分。 欢乐打地鼠小游戏html源码

不同数据库背后的数据存储方案

在大数据和AI时代&#xff0c;数据库成为各类应用不可或缺的重要组成部分。而数据库中的数据依赖存储引擎进行管理&#xff0c;包括数据的存储、查询、更新和删除等。因此&#xff0c;在设计系统时&#xff0c;选择正确的数据库存储引擎方案变得尤为重要。这篇文章将以关系型、…

滑动窗口算法:巧妙玩转数据的窗外世界

✨✨✨学习的道路很枯燥&#xff0c;希望我们能并肩走下来! 文章目录 目录 文章目录 前言 一 滑动窗口是什么&#xff1f; 二 相关题目解析 1. 长度最小的子数组 &#x1f973;题目解析 &#x1f973;算法原理 ✏️思路1 暴力枚举出所有子数组之和 ✏️思路2 滑动窗…

LabVIEW调用DLL时需注意的问题

在LabVIEW中调用DLL&#xff08;动态链接库&#xff09;是实现与外部代码集成的一种强大方式&#xff0c;但也存在一些常见的陷阱和复杂性。本文将从参数传递、数据类型匹配、内存管理、线程安全、调试和错误处理等多个角度详细介绍LabVIEW调用DLL时需要注意的问题&#xff0c;…

有趣的数学 为什么绝对值和模都用两个竖线表示?

绝对值和模都可以使用两个竖线表示&#xff0c;是因为它们在数学概念上有相似的性质&#xff0c;不过是应用场景不同。 绝对值&#xff08;Absolute Value&#xff09;&#xff1a; 绝对值是一个实数的非负值。它表示一个数在数轴上距离原点的距离。例如&#xff0c; 和 。 模&…

Hadoop3:MapReduce源码解读之Map阶段的TextInputFormat切片机制(3)

Job那块的断点代码截图省略&#xff0c;直接进入切片逻辑 参考&#xff1a;Hadoop3&#xff1a;MapReduce源码解读之Map阶段的Job任务提交流程&#xff08;1&#xff09; 5、TextInputFormat源码解析 类的继承关系 它的内容比较少 重写了两个父类的方法 这里关心一下泛型参数…

基于Java+SpringBoot制作一个软考助手答题小程序

基于Java+SpringBoot制作一个软考小助手考试答题小程序。其中系统前端功能包括注册登录、公告通知、考试答题、视频课程、考试记录、题库、题目评论、错题统计、我的收藏和用户信息管理模块;系统后台功能包括用户管理、题库管理、答题管理、学习视频管理以及系统管理模块。 摘…

WINUI——Behavior(行为)小结

前言 在使用MVVM进行WINUI或WPF开发时&#xff0c;Command在某些时候并不能满足逻辑与UI分离的要求。这时肯定就需要其它技术的支持&#xff0c;Behavior就是一种。在WPF中是有Behavior直接支持的&#xff0c;转到WINUI后&#xff0c;相对有一些麻烦&#xff0c;于是在此记录之…

RainBond 制作应用并上架【以ElasticSearch为例】

文章目录 安装 ElasticSearch 集群第 1 步:添加组件第 2 步:查看组件第 3 步:访问组件制作 ElasticSearch 组件准备工作ElasticSearch 集群原理尝试 Helm 安装 ES 集群RainBond 制作 ES 思路源代码Dockerfiledocker-entrypoint.shelasticsearch.yml制作组件第 1 步:添加组件…

搭建RocketMQ主从异步集群

搭建RocketMQ主从异步集群 1、RocketMQ集群模式 为了追求更好的性能&#xff0c;RocketMQ的最佳实践方式都是在集群模式下完成的。RocketMQ官方提供了三种集群搭建方式&#xff1a; 2主2从异步通信方式&#xff1a;使用异步方式进行主从之间的数据复制。吞吐量大&#xff0c;…

通过 AI Edge Torch 生成式 API 在设备上使用自定义大语言模型

作者 / 首席工程师 Cormac Brick&#xff0c;软件工程师 Haoliang Zhang 我们很高兴地发布 AI Edge Torch 生成式 API&#xff0c;它能将开发者用 PyTorch 编写的高性能大语言模型 (LLM) 部署至 TensorFlow Lite (TFLite) 运行时&#xff0c;从而无缝地将新的设备端生成式 AI 模…

[大模型]Gemma-2B-Instruct FastApi 部署调用

环境准备 在 平台中租赁一个 3090 等 24G 显存的显卡机器&#xff0c;如下图所示镜像选择 PyTorch-->2.1.0-->3.10(ubuntu22.04)-->12.1。 接下来打开刚刚租用服务器的 JupyterLab&#xff0c;并且打开其中的终端开始环境配置、模型下载和运行演示。 pip 换源加速下载…

[qt] qt程序打包以及docker镜像打包

目录 一 环境准备: 1.1 qt环境 1.2 linuxdeplouqt打包工具 二 qt包发布: 2.1 搜索链接库 2.2 应用程序APP打包 2.3 发布 三 docker镜像包发布 3.1 环境准备 3.2 镜像生产脚本 3.3 加载镜像并运行docker容器 一 环境准备: qt环境linuxdeployqt打包工具docker环境 1…

Python学习打卡:day01

day1 笔记来源于&#xff1a;黑马程序员python教程&#xff0c;8天python从入门到精通&#xff0c;学python看这套就够了 1、Python 软件&#xff08;PyCharm&#xff09; 安装&#xff1a;在 Linux 环境下安装 Pycharm 插件&#xff1a;汉化、翻译 设置字体大小 常用快捷…

【MySQL】(基础篇五) —— 排序检索数据

排序检索数据 本章将讲授如何使用SELECT语句的ORDER BY子句&#xff0c;根据需要排序检索出的数据。 排序数据 还是使用上一节中的例子,查询employees表中的last_name字段 SELECT last_name FROM employees;输出结果&#xff1a; 发现其输出并没有特定的顺序。其实&#xf…

【Linux】进程3——PID/PPID,父进程,子进程

在讲父子进程之前&#xff0c;我们接着上面那篇继续讲 1.查看进程 mycode.c makefile 我们在zs_108直接编译mycode.c&#xff0c;直接运行&#xff0c;然后我们转换另一个账号来查看这个进程 我们可以通过ps指令来查看进程 我们就会好奇了&#xff0c;第二行是什么&#xff…

牛客热题:矩阵的最小路径和

&#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;力扣刷题日记 &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 文章目录 牛客热题&#xff1a;矩阵的最小路径和题目链接方法一…