(一) 初入MySQL 【认识和部署】

前置资源

一、数据库概述

1.1、数据库基本概念

数据(Data)

  •  描述事物的符号记录称为数据。数字、文字、图形、图像、声音、档案记录等都是数据。
  • 数据是以“记录”的形式按照统一的格式进行存储的,而不是杂乱无章的。 相同格式和类型的数据统一存放在一起,而不会把“人”和“书”混在一起存储。这样,数据的存储就能够井然有序。

表(行+列)

  • 数据存储在表中
  • 记录:行
  • 字段(属性): 列

数据库 

  • 数据库就是表的集合。

它是以一定的组织方式存储的相互有关的数据集合

关系数据库的表由记录组成,记录由字段组成,字段由字符或数字组成。它可以供各种用户共享, 具有最小冗余度和较高的数据独立性,它是统一管理的相关数据的集合。

1.2、数据库概念图

1.3、 数据库管理系统

数据库管理系统(Data base Management System,DBMS

是实现对数据库资源有效组织,管理和存取的系统软件
数据库的建立和维护功能,数据定义功能数据操纵功能,数据库的运行管理功能通信功能。

DBMS主要包括以下功能:

  • 数据库的建立和维护功能:包括建立数据库的结构和数据的录入与转换、数据库的 转储与恢复、数据库的重组与性能监视等功能。
  • 数据定义功能:包括定义全局数据结构、局部逻辑数据结构、存储结构、保密模式及信息格式等功能。保证存储在数据库中的数据正确、有效和相容,以防止不合语义的错误数据被输入或输出。
  • 数据操纵功能:包括数据查询统计和数据更新两个方面。
  • 数据库的运行管理功能:这是数据库管理系统的核心部分,包括并发控制、存取控 制、数据库内部维护等功能。
  • 通信功能:DBMS 与其他软件系统之间的通信,如 Access 能与其他 Office 组件进行数据交换。

1.4、 数据库系统

数据库系统(DatabaseSystem,DBS

是一个人机系统,

一般由硬件、操作系统、数据库、DBMS、应用软件和数据库用户(包括数据库管理员)组成。用户可以通过 DBMS 操作数据库,也可以通过应用程序操作数据库。

应用程序是利用DBMS为解决某个具体的管理或数据处理的任务而编制的一系列命令的有序集合。如果应用程序比较完善,能够提供友好的人机界面,并编译成可执行文件发行,使得普通用户不需要具备计算机的专业知识,在较短时间就学会使用,那么就称为数据库应用软件。 (如Navicat)

常用的数据库应用软件有人事管理、财务管理、图书管理等信息管理软件及各类信息咨 询系统等。

数据库管理员(DatabaseAdministrator,DBA)负责数据库的更新和备份、数据库系统的维护、用户管理等工作,保证数据库系统的正常运行。DBA 一般由业务水平较高、资历较深的人员担任。


需要注意的是数据库、数据库系统、数据库管理系统,甚至数据库表等名词,在日常讨论中通常不严格区别。遇到此情况时,可以根据具体情况,判断出实际所指的是什么。
 

1.5、DBMS的工作模式如下:

1>接受应用程序的数据请求和处理请求

2>将用户的数据请求(高级指令)转换为复杂机器代码(底层指令)

3>实现对数据库的操作

4>从数据库的操作中接受查询结果

5>对查询结果进行处理(格式转换)

6>将处理结果返回给用户

二、关系型数据库和非关系型数据库

2.1、关系型数据库

数据库管理系统公司/起源主要用途/特点
MySQLOracle Corporation(原Sun Microsystems,后被Oracle收购)广泛使用的开源关系型数据库管理系统,适用于Web应用、中小企业等
SQL Server微软(Microsoft)商业关系型数据库管理系统,集成于微软的.NET框架,常用于企业级应用
Access微软(Microsoft)作为Microsoft Office套件的一部分,是一个轻量级的桌面数据库,适合小型项目和简单的数据管理(药店什么的)
Oracle Database甲骨文公司(Oracle Corporation)功能强大的商业关系型数据库管理系统,支持大规模、高并发的企业级应用
DB2国际商业机器公司(IBM)商业关系型数据库管理系统,提供高级数据管理能力,适用于各种规模的企业应用
SybaseSAP SE(原Sybase, Inc.)主要面向企业级市场的关系型数据库管理系统,现作为SAP ASE(Adaptive Server Enterprise)的一部分
PostgreSQL开源社区强大的开源对象-关系数据库系统,支持复杂查询和高级功能,广泛用于Web应用、科研等领域

2.2、非关系型数据库

非关系型数据库数据模型主要用途/特点
Redis键值对高速缓存数据库,支持多种数据结构(字符串、哈希、列表、集合、有序集合等),常用于实现快速数据访问和缓存功能
MongoDB文档型基于JSON的文档存储数据库,支持灵活的查询和索引,适用于需要高伸缩性和复杂查询的Web应用
Cassandra列族式分布式NoSQL数据库,专为高伸缩性和高可用性设计,适用于大数据量和高并发的场景
HBase列族式建立在Hadoop HDFS之上的分布式、可扩展的大数据存储系统,支持海量数据的实时随机读写
Neo4j图型图形数据库,专注于高效存储和查询图结构数据,适用于社交网络、推荐系统等场景

2.3、关系型数据库和非关系型数据库的区别

关系数据库:
关系数据库结构是二维数据库表,二维表当中每个字段(列)用来描述对象的一个属性,每个记录(行)用来描述一个对象的信息(完整信息),关系数据库写到哪里也就是存储在硬盘当中读写系统就会受到的IO限制或者瓶颈 。

关系数据库系统是基于关系模型 的数据库系统
关系模型的数据结构使用简单易懂的二维数据表
关系模型可用简单的"实体-关系"(e-r)图来表示

关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织
优点:

  • 1、易于维护:都是使用表结构,格式一致;
  • 2、使用方便:SQL语言通用,可用于复杂查询;
  • 3、复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。

缺点:

  • 1、读写性能比较差,尤其是海量数据的高效率读写;
  • 2、固定的表结构,灵活度稍欠;
  • 3、高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。

---------------------------------------------------------------------------------------------------------------------------------

非关系型数据库(NoSQL):
MongoDB 、 Redis(内存数据库/缓存数据库)K-V键值对、与之类似的Memcache,K-V键值对
redis-memecache对比:
相同点:存储高热数据(在内存中高速运行)
不同点:redis可以做持久化保存,可以存储对象

非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合,可以是文档或者键值对等。

优点:

  • 1、格式灵活:存储数据的格式采用更适合各自数据类型的数据模型,如键值对、文档、列族或图等。这种存储方式使得非关系型数据库能够更灵活地处理各种类型的数据,应用场景广泛,而关系型数据库则只支持基础类型。
  • 2、速度快:nosql可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘;
  • 3、高扩展性;
  • 4、成本低:nosql数据库部署简单,基本都是开源软件。

缺点:

  • 1、不提供sql支持,学习和使用成本较高;
  • 2、无事务处理;
  • 3、数据结构相对复杂,复杂查询方面稍欠。
  • 4、好多数据写在内存中

三、Mysql的部署

前置注意

在CentOS中默认安装有MariaDB,是MySQL的一个分支,主要由开源社区维护。 CentOS 7及以上版本已经不再使用MySQL数据库,而是使用MariaDB数据库。 如果直接安装MySQL,会和MariaDB的文件冲突。 因此,需要先卸载自带的MariaDB,再安装MySQL。

#查看版本:
rpm -qa|grep mariadb
##卸载
rpm -e --nodeps 文件名
### 检查是否卸载干净:
rpm -qa|grep mariadb

另外关闭防火墙和selinux防止乱七八糟的意外。

3.1、yum安装MySQL5.7.20

1、卸载  先停掉mysql进程   (没有安装过的可以直接跳过)

 pkill -9 mysqld

2、使用yum -y remove删除之前的安装 (没有安装过的可以直接跳过)

rpm -qa|grep -i mysql

yum -y remove  对应的安装包(依次卸载 直到没有)

3、下载rpm包,在CentOS 7操作系统上安装MySQL 5.7社区版本【前置资源也有】

cd /usr/local/src/

wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm

4、rpm安装

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

cd /etc/yum.repos.d/      进入我们的yum源,会发现多了

vim /etc/yum.repos.d/mysql-community.repo

我们需要修改 

 否则第五步失败

5、CentOS 7.0的yum用Mariadb来代替MySQL的安装。即使你输入的是yum install -y mysql , 显示的也是Mariadb的安装内容。

但是安装完上面的,可以看到这次不再提示安装Mariadb了(也就是完成4步)

yum -y install mysql-server

如果第四步没有操作

正确如下

6、安装完成后,密码为随机密码,需要重置密码。

首先启动,启动mysql服务

systemctl status  mysqld

查找初始密码

grep "password" /var/log/mysqld.log   

 我的密码是  =oNQ_2I_u69;   很狡诈,有=和;都是密码的一部分

重新修改密码

mysql -u root -p  

下面是初始密码(输入=oNQ_2I_u69; 

进入


 

alter user 'root'@'localhost' identified by '123Abc!x';

注意123Abc!x是你的新密码,这个密码是强密码,要求密码包含大小写字母、数字及标点符号,长度应该在6位以上。(如果需要修改简单,看3.3)

7、创建其他用户

在 MySQL 中,创建用户(包括设置密码)和授权是两个独立的步骤。

因此,您应该首先创建用户(如果需要的话)并设置密码,然后授予权限。

创建用户root001

create

CREATE USER 'root001'@'%' IDENTIFIED BY '你的密码';

更新密码

alter

ALTER USER 'root001'@'%' IDENTIFIED BY '新密码';

授权

grant   privileges   

GRANT ALL PRIVILEGES ON *.* TO 'root001'@'%' WITH GRANT OPTION;

这条命令授予了用户 root001 从任何主机连接到 MySQL 服务器,并对所有数据库和表拥有所有权限的能力,包括授权给其他用户的权限。

刷新权限

flush

FLUSH PRIVILEGES;

3.2、MySQL 5.7.20 二进制版本的安装

前置   安装mysql服务内存必须4G以上

根据rpm -qa | grep mariadb    移除mariadb 

官网MySQL :: Download MySQL Community Server (Archived Versions)

确定版本

rpm -qa | grep glibc

1、下载并上传MySQL软件到/opt

解压

tar -xzvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz  

创建一个目录

mkdir -p /application/mysql

转移内容

cd  /opt

mv mysql-5.7.20-linux-glibc2.12-x86_64/* /application/mysql/

2、用户创建

useradd -s /sbin/nologin mysql

查看

id mysql

3、设置环境变量

vim /etc/profile

#...行末
export PATH=/application/mysql/bin:$PATH

source /etc/profile

测试

mysql -V

4、生产环境中,根据运维经验应该先进行磁盘的配置,在进行MySQL的软件按照工作。

分区

fdisk   /dev/sdb

格式化,创建文件系统

mkfs.xfs /dev/sdb1

创建数据文件

mkdir /data

查看uuid

blkid

永久挂载

vim /etc/fstab

UUID="b7d12ef9-69a1-4e9f-a677-d8650f61cbf8"     /data   xfs     defaults

挂载所有在 /etc/fstab 文件中定义的文件系统的命令

mount  -a  

再次查看

 df -h

5、授权

mkdir /data/mysql/data -p

chown -R mysql:mysql /application/*

chown -R mysql:mysql /data/

无临时密码

mysqld --initialize-insecure --user=mysql --basedir=/application/mysql --datadir=/data/mysql/data

6、启动数据库

配置文件的准备
cat > /etc/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/application/mysql
datadir=/data/mysql/data
socket=/tmp/mysql.sock
server_id=6
port=3306
[mysql]
socket=/tmp/mysql.sock
EOF

启动sys-v方式

cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld

/etc/init.d/mysqld start

检查

netstat -anptu | grep 3306

或者

sysv方式启动过的话,需要提前关闭,才能以下方式登录

启动systemd方式
cat > /etc/systemd/system/mysqld.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantenBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/application/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
EOF

systemctl start mysqld.service

systemctl status mysqld.service
 

记得修改密码(上面是无密码的情况)

mysql -u root

ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_new_password';

3.3、其他的一些内容

3.3.1、把密码改简单的方法 

在mysql环境打开

SHOW VARIABLES LIKE 'vali%';

5.7默认会安装这个插件,若没有安装,则SHOW VARIABLES LIKE 'vali%'则会返回空。

解释

 validate_password_length 8 # 密码的最小长度,此处为8。
 validate_password_mixed_case_count 1 # 至少要包含小写或大写字母的个数,此处为1。
 validate_password_number_count 1 # 至少要包含的数字的个数,此处为1。
 validate_password_policy MEDIUM # 强度等级,

                            其中其值可设置为0、1、2。分别对应:
                           【0/LOW】:只检查长度。
                           【1/MEDIUM】:在0等级的基础上多检查数字、大小写、特殊字符。
                           【2/STRONG】:在1等级的基础上多检查特殊字符字典文件,此处为1。
 validate_password_special_char_count 1 # 至少要包含的个数字符的个数,此处为1

想要关闭这个插件,则在配置文件中加入 validate_password=off   并重启mysqld即可:

在 vim /etc/my.cnf配置文件中增加

validate_password=off


然后重启mysql 就 ok了.

重新启动mysqld

systemctl restart  mysqld

---------------------------------------------------------------------------------------------------------------------------------

3.3.2、一些配置

默认配置文件路径: 
配置文件:/etc/my.cnf
日志文件:/var/log/var/log/mysqld.log 
服务启动脚本:/usr/lib/systemd/system/mysqld.service 
socket文件:/var/run/mysqld/mysqld.pid

---------------------------------------------------------------------------------------------------------------------------------

3.3.3、 设置允许远程登录

登录到mysql里执行

mysql> use mysql
mysql> update user set user.Host='%'where user.User='root';
mysql> flush privileges;
mysql> quit

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

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

相关文章

IP-RDS-222、IP-PRZ-59-AM12、EG-TRZ-42-L、EG-TRZ-42-H比例减压阀放大器

IP-DAR-250、IP-DAR-43C-L、IP-DAR-43C-H、IP-RDS-222、IP-PRZ-59-AM12、EG-TRZ-42-L、EG-TRZ-42-H比例减压阀 EE-PRB、EE-PRD比例压力阀 EE-P2G、ET-P2S、EB-P2A、EE-P2A、ET-P2A、EE-P2H、EG-F2A、EU-F2A比例流量阀 EF-F3G、EU-F3G比例压力补偿流量阀 EQ-S4M、EG-S4M、EQ…

Java 入门指南:Java IO流 —— 转换流、扫描流、打印流

转换流 转换流可以将一个 字节流 包装成 字符流&#xff0c;或者将一个字符流包装成字节流。这种转换通常用于处理文本数据&#xff0c;如读取文本文件或将数据从网络传输到应用程序。 转换流主要有两种类型&#xff1a;InputStreamReader 和 OutputStreamWriter。 InputStr…

文档翻译软件哪个好用?这里有5个顶尖选择

在我的书架上摆满琳琅满目的书籍&#xff0c;这些数据不断的在拓宽我的眼界&#xff0c;但其实我还有秘密武器——5款文献翻译app。 每当我遇到那些充满智慧却难以理解的外文文献时&#xff0c;这些工具总能伸出援手&#xff0c;让复杂的专业术语变得亲切&#xff0c;让晦涩的…

Kafka事件(消息、数据、日志)的存储

1、查看有关kafka日志配置文件的信息 2、查看kafka全部主题的日志文件 3、查看每个主题的日志文件 4、__consumer_offsets-xx文件夹的作用 package com.power;public class Test {public static void main(String[] args) {int partition Math.abs("myTopic".hashCo…

无线通信频率分配

首先看看无线电信号的频谱如何划分&#xff1a; 一、5G NR 3GPP已指定5G NR 支持的频段列表&#xff0c;5G NR频谱范围可达100GHz&#xff0c;指定了两大频率范围&#xff1a; ① Frequency range 1 &#xff08;FR1&#xff09;&#xff1a;就是我们通常讲的6GHz以下频段 频率…

Java算法—排序篇之快速排序(Quick sort)

快速排序&#xff08;Quick sort&#xff09; 核心思路&#xff1a; 从数列中挑出一个元素&#xff0c;一般都是左边第一个数字&#xff0c;称为 “基准数”;创建两个指针&#xff0c;一个从前往后走&#xff0c;一个从后往前走。先执行后面的指针&#xff0c;找出第一个比基…

灵魂 20 问帮你彻底搞定Transformer

1.Transformer为何使用多头注意力机制&#xff1f;&#xff08;为什么不使用一个头&#xff09; 捕捉多种依赖关系&#xff1a; 多头注意力机制允许模型同时关注输入数据的不同部分和特征。每个“头”都能够学习输入序列的不同表示子空间&#xff0c;从而捕捉到不同类型的依赖关…

霸王茶姬小程序(8月优化版)任务脚本——带教程

文章目录 1.购买服务器地址2.部署教程3. 代码如下4. 如何联系我 1.购买服务器地址 服务器购买地址 https://t.aliyun.com/U/BTQ1HK 若失效&#xff0c;可用地址 https://www.aliyun.com/daily-act/ecs/ecs_trial_benefits?source5176.29345612&userCode49hts92d 2.部署…

Java基础(4)- IDEA

目录 一、Module 1.创建module 2.关闭modue 3.导入module 4.src灰色 二、Package 1.创建package 2.删除package 3.package取名规范 三、类 1.创建类 2.快捷语法 3.HelloWorld 四、IDEA基本设置说明 1.字体 2.提示的快捷键 五、常用快捷键 一、Module 1.创建mod…

SpringData-ElasticSearch入门

文章目录 1、创建demo工程2、application.properties3、Goods 实体类4、EsDemoApplicationTests 测试类5、pom.xml6、查看索引库7、查看单个索引&#xff08;数据库&#xff09;8、从goods索引中检索出符合特定搜索条件的文档&#xff08;或记录&#xff09; 1、创建demo工程 2…

ctfhub-web-SSRF通关攻略

一、内网访问 1.打开ctfhub给的环境地址 2.观察题目 发现让我们访问127.0.0.1下的flag.php 在地址栏后面有一个url参数 ?urlhttp://127.0.0.1/flag.php 提交即可 二、伪协议读取文件 1.打开ctfhub给的环境 2.观察题目 发现让我们读取flag.php文件 读取文件用到的协议是…

mathtype 公式编号 添加章节号 章节编号错乱 解决方法

1 怎么添加编号 左编号方法和右编号一样。 打开word软件,选择mathtype工具,点击右编号以后会打开mathtype软件界面,在mathtype软件界面中对于公式进行编写,编写完成后退出并且保存,就可以完成编号添加。 如果是对已有的公式进行编写的话,则通过ctrl+A进行全文选择,选择…

基于SpringBoot+Vue实现的高校心里辅导(咨询)管理系统设计与实现

本高校心理教育辅导系统的开发基于springboot框架&#xff0c;采用Java技术&#xff0c;同时使用MYSQL数据库对系统数据进行储存&#xff0c;充分保证系统数据的安全性和稳定性。系统根据高校心理教育辅导的需求开发功能模块&#xff0c;实现对信息数据的添加、删除、修改、查询…

前端项目部署到服务器上(nginx)

我这个之前已经部署过项目&#xff0c;所以要进行这个操作 docker imagedocker rm -f nginx //用于强制删除名为“nginx”的容器docker ps //用于列出当前正在运行的Docker容器docker volume -fdocker volume prune //用于删除所有未使用的Docker数据卷&#xff0c;‌释放存…

OpenCV绘图函数(2)绘制圆形函数circle()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 绘制一个圆。 cv::circle 函数用于绘制一个给定中心和半径的简单圆或填充圆。 函数原型 void cv::circle (InputOutputArray img,Point cen…

驱动:mknod-misc 杂项自动

一、杂项设备驱动 #include <linux/init.h> #include <linux/kernel.h> #include <linux/fs.h> #include <linux/module.h> #include <linux/device.h> #include <asm/io.h> #include <asm/string.h> #include <asm/uaccess.h>…

简易指南:迅速构建个性化RAG(Retrieval-Augmented Generation)应用

前面的章节&#xff0c;我们已经完成了可用的基于知识库回答的ai助手&#xff0c;尽管RAG容易上手&#xff0c;但是要真正掌握其精髓却颇有难度&#xff0c;实际上&#xff0c;建立一个的有效的RAG系统不仅仅是将文档放入向量数据库并叠加一个llm模型那么简单&#xff0c;这种方…

心觉:赚钱是修行最快的一种方式

Hi&#xff0c;我是心觉&#xff0c;与你一起玩转潜意识、脑波音乐和吸引力法则&#xff0c;轻松搞定人生挑战&#xff0c;实现心中梦想&#xff01; 挑战日更写作152/1000(完整记录在下面) 公门洞开纳百川 众心逐梦越千山 号召引领潜力绽 心觉潜意识无间 人生就是一场体…

【网络】P2P打洞原理

本文首发于 ❄️慕雪的寒舍 1. 引入 如果你折腾过NAS或者BT下载等等玩意&#xff0c;可能听说过“P2P打洞”这一技术名词。简单来说&#xff0c;P2P打洞可以让我们直接在外网访问内网的设备&#xff0c;从而让没有公网IP的家庭设备也能获得“公网直连”的速度。 比如绿联、极…

ES 根据条件删除文档

随着业务量的增多&#xff0c;es中数据越来越多&#xff0c;但有些数据其实后期并无业务用途&#xff0c;可直接做物理删除&#xff0c;程序里做兼容&#xff0c;但历史每个月的索引里的数据需要处理这部分冗余数据。 es提供_delete_by_query 根据查询条件进行删除的操作&…