系统学习Linux-MySQL服务基础(一)

一、MySQL服务概述

什么是数据库?

将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合

数据库是存储、管理和操作组织化数据的软件系统

数据库能干什么?

企业应用存放用户数据、管理企业数据
金融行业存储分析客户的财务数据
电子商务存储产品信息、订单信息等
社交媒体存储社交消息数据
物联网物联网设备在云服务平台的数据存储

为什么要用数据库,优势、特性?

可靠性和稳定性

现代数据库系统通常具有高度可靠性和稳定性,可以提供持久性和容错性,可以确保企业的数据安全性。

数据管理能力

数据库系统提供了一种强大的方式来管理数据,从数据的存储到访问都进行统一的管理。企业可以更好地跟踪、管理和报告数据,从而使工作更加高效。

数据共享和集成

企业常常需要从不同的部门和应用程序中收集信息和数据。通过使用数据库,这些数据可以集成在一起,使企业更容易理解业务、做出决策。

数据安全性和隐私保护

企业往往会处理大量的机密数据,如个人信息、财务信息、业务数据等等。数据库管理系统可以提供安全的访问控制和数据保护功能,保护数据的隐私性和机密性。

减少数据冗余

数据库技术可以帮助企业减少数据冗余和重复,提高数据的一致性、准确性和可重用性。

二、MySQL数据库类型

关系型数据库,RDBMS

概述

关系型数据库是一种使用表格来展示和管理数据的数据库,关系型数据库的核心是数据之间的关系,因此也叫做“关系数据库”。RDBMS可以让用户很容易地使用和管理这些关系

特点

便于查询和操作SQL语句
结构化数据使用行和列存放数据
数据的一致性和完整性各种约束条件
并发性支持多用户连接的隔离性

代表产品

MySQL瑞典MYSQL AB公司开发,现由甲骨文公司管理
PostgreSQLPostgreSQL全球开发组开发的免费的开源的数据库管理系统

非关系型数据库,NoSQL

概述

NoSQL(Not only SQL)是一种非关系型数据库模型,其数据存储和查询机制与传统的关系型数据库不同

特点

非结构化数据文本、图像、媒体等
分布式存储分布在多个节点中,实现高并发
没有固定的规范模式无需定义表和列,不强制要求结构
高可伸缩性支持水平扩展,增加或删除节点
高性能高速读写操作,比传统的关系型数据库效率要高

代表产品

MongoDB一款基于文档存储模型的非关系型数据库软件
Redis一款基于内存存储的非关系型数据库,与MongoDB一样广泛应用于互联网领域, Redis常用于快速读写操作、缓存等场景

三、MySQL数据库模型

1966年,IBM研究员Codd提出层次结构模型

层次型数据库模型

它的数据结构如同树状结构。每个节点都只有一个父节点,但可以有多个子节点
这种模型存在层次结构复杂、扩展性差、数据操作限制等问题
1969年,CODASYL工作组发布了网络模型

网状型数据库模型

它使用复杂链表来表示数据之间的关系,并增加了数据结构的灵活性和递归处理能力,从而解决了层次结构模型的一些问题
解决了层次结构模型的一些问题。但是网络模型需要了解复杂的物理存储结构,对程序设计人员的要求比较高
1970年,Codd提出了关系型模型,也就是目前SQL和RDBMS所采用的模型

关系型数据库模型

关系型模型基于二维表格的结构组织数据,每个表格称为关系,每行记录代表一个实体,每列记录代表一个属性。关系之间通过主键和外键进行关联
它具有数据结构简单、数据组织规范、数据操作强大、数据完整性可控等优点,是目前应用最广泛的数据库模型

非关系型模型


四、MySQL安装

yum/rpm安装

下载安装包

wget https://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

安装数据库服务

rpm -ivh mysql57-community-release-el7-8.noarch.rpm

yum -y install mysql-server

问题解决

1、安装mysql提示公钥未安装

提示信息

mysql-community-common-5.7.42-1.el7.x86_64.rpm 的公钥尚未安装

失败的软件包是:mysql-community-common-5.7.42-1.el7.x86_64

GPG  密钥配置为:file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

分析原因

mysql密钥过期

解决办法

安装新的密钥然后再安装服务

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

yum -y install mysql-server

不使用GPG密钥验证

yum -y install mysql-server --nogpgcheck

2、登录数据库时提示密码错误

提示信息

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

分析原因

输入的密码是错误的,所以拒绝你的访问

解决问题

1.使用随机密码登录

查看临时密码

grep 'temporary password' /var/log/mysqld.log

登录时使用查看到的随机密码  

mysql -u root -p

Enter password: 输入随机密码

2.自行重置密码

重置密码的第一步就是跳过MySQL的密码认证过程

进入数据库的配置文件

vim /etc/my.cnf

添加参数,不验证密码进入mysql

skip-grant-tables

接下来我们需要重启MySQL

systemctl restart mysqld

重新登录数据库时,直接按回车

查看数据库

show databases;

使用mysql数据表

use  mysql;

创建root用户使用新的密码

create  user  'root'@'localhost' identified by '123456';

如果报错,先刷新配置,在删除原来的root用户,然后再执行创建的操作

flush privileges;

drop user 'root'@'localhost';

create  user  'root'@'localhost' identified by '123456';

赋予root权限

grant all privileges on *.* to 'root'@'localhost' with grant option;

刷新配置,退出数据库

flush privileges;

exit

恢复最开始的配置文件

vim /etc/my.cnf

去掉配置项skip-grant-tables

重启mysql,然后使用新密码重新登录数据库

systemctl restart mysqld

mysql -uroot -p123456


yum/rpm安装步骤实验

测试网络

ping www.baidu.com

下载安装包

wget https://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

安装数据服务

rpm -ivh mysql57-community-release-el7-8.noarch.rpm

yum -y install mysql-server

问题解决

1、安装mysql提示公钥未安装

分析原因:mysql密钥过期

解决办法

安装新的密钥然后再安装服务

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

yum -y install mysql-server

不使用GPG密钥验证

yum -y install mysql-server --nogpgcheck


启动服务并启动

systemctl start mysqld  开启服务

mysql  启动


2、登录数据库时提示密码错误

提示信息

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

分析原因

输入的密码是错误的,所以拒绝你的访问

解决问题:自行重置密码

重置密码的第一步就是跳过MySQL的密码认证过程

进入数据库的配置文件

vim /etc/my.cnf

添加参数,不验证密码进入mysql:skip-grant-tables

接下来我们需要重启MySQL

systemctl restart mysqld

重新登录数据库时

mysql

查看数据库

show databases;

使用mysql数据表

use  mysql;

先刷新配置,再删除原来的root用户

flush privileges;

drop user 'root'@'localhost';

创建root用户使用新的密码

create user 'root'@'localhost' identified by '123456';

赋予root权限

grant all privileges on *.* to 'root'@'localhost' with grant option;

刷新配置,退出数据库

flush privileges;

exit

恢复最开始的配置文件

vim /etc/my.cnf

去掉配置项skip-grant-tables

重启mysql,然后使用新密码重新登录数据库

systemctl restart mysqld

mysql -uroot -p123456


五、课外扩展

 

表格制作

create database biaoge;

show databases;

use class_five;

show tables;

 

mysql> create table students(
    -> 编号 int not null,
    -> 姓名 varchar(20) not null,
    -> 性别 char(10) not null
    ->  )character set utf8mb4 collate utf8mb4_unicode_ci;

show tables;

select * from students;

describe students;

insert into students(编号,姓名,性别) values(1,'张三','男'),(2,'李四','女'),(3,'王五','男'),(4,'赵六','男'),(5,'小明','男'),(6,'小帅','男'),(7,'小美','女'),(8,'小红','女'),(9,'大明','男'),(10,'大帅','男'),(11,'大美','女'),(12,'大红','女');

select * from students\g

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

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

相关文章

pear文件利用 (远程文件下载、生成配置文件、写配置文件) 从一道题看——CTFshow私教 web40

web40 考点:pear文件包含 pear是PHP的一个扩展 条件: 1 有文件包含点 2 开启了pear扩展 (可以当他是一个框架) 3 配置文件中register_argc_argv 设置为On,而默认为Off($_SERVER[‘argv’]生效) 4 找到…

【力扣每日一题】2023.7.25 将数组和减半的最少操作次数

目录 题目: 示例: 分析: 代码运行结果: 题目: 示例: 分析: 题目给我们一个数组,我们每次可以将任意一个元素减半,问我们操作几次之后才可以将整个数组的和减半&…

【cpolar内网穿透工具】

文章目录 cpolar内网穿透工具.md概述什么是cpolar?cpolar可以用在哪些场景? 1. 注册cpolar帐号1.1 访问官网站点:[https://www.cpolar.com](https://link.zhihu.com/?targethttps%3A//www.cpolar.com/) 1.2 注册帐号 2. 下载Windows版本cpol…

【ARM Cache 系列文章 2 -- Cache Coherence及内存顺序模学习】

文章目录 Cache Coherence 背景1.1 内存顺序模型简介(Memory Model)1.1.1 Normal Memory1.1.2 Device Memory 1.2 Cache 一致性问题解决方案1.2.1 Shareability 属性1.2.2 Non-Shareable 属性1.2.3 Inner-Shareable 属性1.2.4 Out-Shareable 属性 1.3 Shareability 和 PoC/PoU …

【干货防踩坑/全图文分步/Gitlab镜像仓库自动同步】Gitlab CE/EE镜像仓库的配置技巧(含ssh/密码两验证方法)

【干货踩坑】Gitlab CE/EE镜像仓库的配置技巧(含ssh/密码两验证方法) 众所周知,Gitlab是个好东西。为什么呢?GitHub没有的功能,他全有了。更何况还可以私有部署。这两天自己部署了Gitlab,然后想把自己的项…

2. Spring 的创建和使用

目录 1. 创建 Spring 项目 1.1 创建一个 maven 项目 1.2 添加 Spring 框架支持 1.3 添加启动类 2. 存储 Bean 对象 2.1 创建 Bean 2.2 将 Bean 注册到容器 3. 获取并使用 Bean 对象 3.1 创建 Spring 上下文 ApplicationContext 和 BeanFactory 的区别(重点…

django项目入门

django中view.py是什么 在Django中,view.py是一个Python模块,用于处理HTTP请求并返回HTTP响应。它包含了Django应用程序的视图函数,视图函数接收HTTP请求作为参数,并根据请求的内容执行相应的逻辑处理。视图函数可以从数据库中获…

gitignore修改不生效

.gitignore中已经标明忽略的文件目录下的文件,当我想git push的时候还会出现在push的目录中,原因是因为在git忽略目录中,新建的文件在git中会有缓存,如果某些文件已经被纳入了版本管理中,就算是在.gitignore中已经声明…

Jenkins Pipeline的hasProperty函数

函数的作用 用于判断某个参数或者字段是否存在。 用法 例子一 def projectStr "P1,P2,P3" pipeline {agent anyparameters {extendedChoice(defaultValue: "${projectStr}",description: 选择要发布的项目,multiSelectDelimiter: ,,name: SELECT_PROJ…

学习Java,需要知道的网站30+网站,你知道哪些?

以下是 30 个 Java 学习网站,并详细介绍: Java 官方文档:https://docs.oracle.com/javase/8/docs/api/ Java 官方文档是 Java 学习者必备的参考资料,提供了 Java 核心库的详细说明和示例代码,包括类、接口、方法和属性…

分布式锁:Redis、Zookeeper

1.基于Redis实现分布式锁 Redis分布式锁原理如上图所示,当有多个Set命令发送到Redis时,Redis会串行处理,最终只有一个Set命令执行成功,从而只有一个线程加锁成功 2.SetNx命令加锁 利用Redis的setNx命令在Redis数据库…

TensorFlow 进阶:定制模型和训练算法

本文将为你提供关于 TensorFlow 的中级知识,你将学习如何通过子类化构建自定义的神经网络层,以及如何自定义训练算法。 一、创建自定义层 在 TensorFlow 中,神经网络的每一层都是一个类,我们可以通过创建一个新的类并继承 tf.ke…

Vision Transformer (ViT)

生成式模型与判别式模型 生成式模型,又称概率模型,是指通过学习数据的分布来建立模型P(y|x),然后利用该模型来生成新的数据。生成式模型的典型代表是朴素贝叶斯模型,该模型通过学习数据的分布来建立概率模型,然后利用…

【个人笔记】Linux命令之查看使用过的命令

1.使用 history 显示出所有使用过的命令 history2.使用 history 和 grep 命令进行过滤 history | grep docker3.查看 ~/.bash_history 文件,Bash的命令历史默认保存在~/.bash_history中 vim ~/.bash_history #或 cat -n ~/.bash_history4.使用 ctrlr …

【人工智能】深度神经网络、卷积神经网络(CNN)、多卷积核、全连接、池化

深度神经网络、卷积神经网络(CNN)、多卷积核、全连接、池化) 文章目录 深度神经网络、卷积神经网络(CNN)、多卷积核、全连接、池化)深度神经网络训练训练深度神经网络参数共享卷积神经网络(CNN)卷积多卷积核卷积全连接最大池化卷积+池化拉平向量激活函数优化小结深度神经…

如何在Debian中配置代理服务器?

开始搭建代理服务器 首先我参考如下文章进行搭建代理服务器,步骤每一个命令都执行过报了各种错,找了博客 目前尚未开始,我已经知道我的路很长,很难走呀,加油,go!go!go! …

MySQL数据库关于表的一系列操作

MySQL中的数据类型 varchar 动态字符串类型(最长255位),可以根据实际长度来动态分配空间,例如:varchar(100) char 定长字符串(最长255位),存储空间是固定的,例如&#…

Nginx | Nginx返回的状态码详情

200 (成功) 服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。 201 (已创建) 请求成功并且服务器创建了新的资源。 202 (已接受) 服务器已接受请求,但尚未处理。 203 &…

博客更新notion版本01

官网视频娇嗔 Your connected workspace for wiki, docs & projects | Notion 【Notion教程】:https://www.bilibili.com/video/[BV1so4y1V7nX](https://www.bilibili.com/video/BV1so4y1V7nX/?spm_id_from333.788.video.desc.click) 【Notion汉化】&#x…

系统架构设计师-软件架构设计(4)

目录 一、软件架构评估 1、敏感点 2、权衡点 3、风险点 4、非风险点 5、架构评估方法 5.1 基于调查问卷或检查表的方式 5.2 基于度量的方式 5.3 基于场景的方式 6、基于场景的评估方法 6.1 软件架构分析法(SAAM) 6.2 架构权衡分析法(ATAM&am…