linux中数据库的概念、mysql的两种安装方法

数据库

  • 数据库
    • 数据库DB
    • sql语言
    • 关系型数据库(SQL)
    • 非关系型数据库(NOSQL)
    • 关系型数据库与非关系型数据库的区别
  • Mysql
    • mysql
      • 定义
      • 版本演化
    • Mysql安装
      • Mysql源码安装
        • 准备环境
        • 清理环境
        • 安装依赖包
        • 添加MySQL用户
        • 添加mysql组
        • 创建数据目录和其他必要目录
        • 上传源码包
        • 解压并编译
        • 设置环境变量
        • 修改安装产生的文件的所有者属组
        • 配置文件
        • 初始化数据库
        • 启动数据库
        • 查看端口验证数据库是否启动
        • 查找初始密码
        • 修改密码
        • 登录数据库
        • 退出数据库
        • 停止数据库
        • 配置启动方式
        • 使用systemctl管理数据库
        • mysql服务设置开机自启动
      • yum安装mysql
        • 清理环境
        • 下载yum源的rpm包
        • 安装mysql
        • 修改密码

数据库

名词解释
数据库服务器运行着数据库应用的设备
数据库实例数据库服务器上启动的数据库服务,例如:mysql服务
数据库表的管理单元
字段、记录
记录|实体字段的管理单元
字段|属性字段名,字段类型、长度,字段约束组成
类型字符,数字,日期
约束NULL NOTNULL等

数据库DB

DB的全称是database,即数据库的意思。数据库实际上就是一个文件集合,是一个存储数据的仓库,数据库是按照特定的格式把数据存储起来,用户可以对存储的数据进行增删改查操作;

sql语言

SQL代表结构化查询语言(Structured Query Language)。SQL是用于访问数据库的标准化语言。数据查询语言(DQL:Data Query Language): 其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字SELECT是DQL(也是所有SQL)用得最多的动词。数据操作语言(DML:Data Manipulation Language): 其语句包括动词INSERT,UPDATE和DELETE。它们分别用于添加,修改和删除表中的行。也称为动作查询语言。 数据控制语言(DCL):(Data Control Language): 它的语句通过GRANT或REVOKE获得许可,确定单个用户和用户组对数据库对象的访问。某些RDBMS可用GRANT或REVOKE控制对表单个列的访问。数据定义语言(DDL):(Data Define Language): 其语句包括动词CREATE和DROP。在数据库中创建新表或删除表(CREAT TABLE 或 DROP TABLE);为表加入索引等。DDL包括许多与人数据库目录中获得数据有关的保留字。它也是动作查询的一部分。

SQL包含四个部分:

  • DDL语句,数据库定义语言:数据库,表,视图,索引,存储过程,函数,例如:CREATE
  • DML语句,数据库操纵语言:插入数据INSERT、删除数据DELETE、更新数据UPDATE
  • DQL语句,数据库查询语句:查询数据SELECT
  • DCL语句,数据库控制语言:控制用户的访问权限GRANT、REVOLE

关系型数据库(SQL)

  • 关系型数据库是依据关系模型来创建的数据库。
  • 所谓关系模型就是“一对一、一对多、多对多”等关系模型,关系模型就是指二维表格模型,因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。
  • 关系型数据可以很好地存储一些关系模型的数据,比如一个老师对应多个学生的数据(“多对多”),一本书对应多个作者(“一对多”),一本书对应一个出版日期(“一对一”)

非关系型数据库(NOSQL)

  • 非关系型数据库主要是基于“非关系模型”的数据库(由于关系型太大,所以一般用“非关系型”来表示其他类型的数据库)

  • 非关系型模型比如有:

    存储的数据是一列列的。关系型数据库以一行作为一个记录,列模型数据库以一列为一个记录。(这种模型,IO很快,主要是一些分布式数据库)

关系型数据库与非关系型数据库的区别

关系型数据库:
优点:
1、易于维护:都是使用表结构,格式一致;
2、使用方便:SQL语言通用,可用于复杂查询;
3、复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询;
4、学习成本低。
缺点:
1、读写性能比较差,尤其是海量数据的高效率读写;
2、固定的表结构,灵活度稍欠;
3、高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。吞吐量
非关系型数据库
优点:
1、格式灵活:存储数据的格式可以是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,使用灵活,应用场景广泛.
2、速度快:可以使用硬盘或者内存作为载体,而关系型数据库只能使用硬盘;redis数据库单线程10W
3、成本低:数据库部署简单,基本都是开源软件。缺点:
1、不提供sql支持,学习和使用成本较高;
2、无事务处理;

关系型数据库:Oralce Mysql DB2 PostgreSQL SqlServer

非关系型数据库:Redis MongDB Memcache

Mysql

mysql

定义

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

版本演化

MySQL:5.0 5.1 5.2 5.3 5.4 5.5 5.6 5.7 8.0

MariaDB: 5.0 5.1 5.2 5.3 5.4 5.5 10.0 10.1 10.2 10.3 10.4 10.5(有限代替MySQL8) 10.6……10.10代替MySQL8

Mysql安装

Mysql源码安装

准备环境
//防火墙 
systemctl stop firewalld && systemctl disable firewalld//selinux
setenforce 0
sed -i.bak 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
getenforce//公网
ping -W1 -c3 www.baidu.com
清理环境
yum -y erase mariadb mariadb-server mariadb-libs mariadb-devel
userdel -r mysql
rm -rf /etc/my*
rm -rf /var/lib/mysql
yum -y erase mysql*  mariadb*   //卸载可能存在的残留
安装依赖包
yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make glibc automake autoconf cmake
添加MySQL用户
useradd -M -g mysql -s /sbin/nologin mysql
添加mysql组
groupadd mysql
创建数据目录和其他必要目录
mkdir -p /usr/local/{data,mysql,log,tmp}    //创建目录
chown -R mysql:mysql /usr/local/{data,mysql,log,tmp}   //更改所有者、属组
上传源码包
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.24.tar.gz   //官网下载源码包下载到windows本机,lrzsz上传到服务器
解压并编译
tar -xf mysql-boost-5.7.40.tar.gz   //解压源码包cd mysql-5.7.40  //进入解压源码包出来的目录cmake . \
-DWITH_BOOST=boost/boost_1_59_0/ \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DSYSCONFDIR=/etc \
-DMYSQL_DATADIR=/usr/local/data \
-DINSTALL_MANDIR=/usr/share/man \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/usr/local/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_SSL=system \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1make && make install   //make后可以加上-j 用更多的cpu去更快的跑完
提示:boost也可以使用如下指令自动下载,如果不下载boost压缩包,把下面的这一条添加到配置中第二行
-DDOWNLOAD_BOOST=1/参数详解:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \   安装目录
-DSYSCONFDIR=/etc \   配置文件存放 (默认可以不安装配置文件)
-DMYSQL_DATADIR=/usr/local/mysql/data \   数据目录   错误日志文件也会在这个目录
-DINSTALL_MANDIR=/usr/share/man \     帮助文档 
-DMYSQL_TCP_PORT=3306 \     默认端口
-DMYSQL_UNIX_ADDR=/usr/local/tmp/mysql.sock \  sock文件位置,用来做网络通信的,客户端连接服务器的时候用
-DDEFAULT_CHARSET=utf8 \    默认字符集。字符集的支持,可以调
-DEXTRA_CHARSETS=all \   扩展的字符集支持所有的
-DDEFAULT_COLLATION=utf8_general_ci \  支持的
-DWITH_READLINE=1 \    上下翻历史命令
-DWITH_SSL=system \    使用私钥和证书登陆(公钥)  可以加密。 适用与长连接。坏处:速度慢
-DWITH_EMBEDDED_SERVER=1 \   嵌入式数据库
-DENABLED_LOCAL_INFILE=1 \    从本地倒入数据,不是备份和恢复。
-DWITH_INNOBASE_STORAGE_ENGINE=1  默认的存储引擎,支持外键
设置环境变量
echo 'export PATH=$PATH:/usr/local/mysql/bin'>>/etc/profile   //添加环境变量
source /etc/profile      //重启服务
修改安装产生的文件的所有者属组
chown -R mysql.mysql /usr/local/mysql
配置文件
cd /usr/local/mysql/mysql-test/include
cp /etc/{my.cnf,my.cnf.bak}    //拷贝一份配置文件
vim /etc/my.cnf       //这个文件要不没有,要不就要写内容[mysqld]
basedir = /usr/local/mysql                    #安装目录
datadir = /usr/local/data					  #数据存放目录
tmpdir = /usr/local/tmp						  #/tmp缓存目录
socket = /usr/local/tmp/mysql.sock			  #指定socket文件的位置
pid_file = /usr/local/tmp/mysqld.pid		  #指定pid文件的位置
log_error = /usr/local/log/mysql_error.log	  #错误日志的位置
slow_query_log_file = /usr/local/log/slow_warn.log  #慢日志查询server_id = 1						#server-id=??
user = mysql						#指定用户
port = 3306							#指定端口
bind-address = 0.0.0.0				#监听地址(允许所以ip访问)
character-set-server = utf8			#字符集
default_storage_engine = InnoDB		#引擎
初始化数据库
mysqld --defaults-file=/etc/my.cnf --initialize --user='mysql'   //初始化,记录一下初始密码如果需要重新初始化,删除/usr/local/mysql/data目录的东西删完
启动数据库
mysqld_safe --defaults-file=/etc/my.cnf &
查看端口验证数据库是否启动
ss -nplt |  grep 3306
查找初始密码
grep "password" /usr/local/log/mysql_error.logawk '/temporary password/{p=$NF}END{print p}' /usr/local/log/mysql_error.log
修改密码
mysqladmin -uroot -p'原密码' password '新密码'     //原密码是初始密码mysqladmin -uroot -p password      //回车后,先输入原密码,在输入两遍新密码,更改成功
登录数据库
mysql -uroot -p'新密码'
退出数据库
[ \q | exit | quit | ctrl+d ]
停止数据库
mysqladmin -uroot -p'新密码' shutdown
配置启动方式
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
使用systemctl管理数据库
systemctl daemon-reload       //重新加载系统控制工具systemctl [start | stop | restart] mysqld   
mysql服务设置开机自启动
方法一:
systemctl enable mysqld
/sbin/chkconfig mysqld on    //设置mysql开机自启命令方法二:
chkconfig --list    //查询自启动服务前面已经把启动文件拷贝到/etc/init.d/mysqld,所以进入/etc/init.d目录chmod +x /etc/init.d/mysqld   //赋予可执行权限chkconfig --add mysqld      //添加为自启动服务chkconfig --list    //查询自启动服务然后reboot重启,就实现开机自启了

yum安装mysql

清理环境
rm -rf /var/lib/mysql
rm -rf /etc/my.cnf
rm -rf /var/log/mysql*yum -y erase mysql*  mariadb*    //卸载残留
下载yum源的rpm包
yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpmvim /etc/yum.repos.d/mysql-community.repo   //默认下载mysql的版本,打开5.7,关闭8.0修改默认下载版本的方法
直接更改配置文件:vim永久修改
yum -y install  yum-utils  //安装工具
yum-config-manager --disable mysql80-community   //关闭8.0
yum-config-manager --enable mysql57-community    //关闭5.7临时修改
yum -y install mysql-community-server --enablerepo mysql57-community --disablerepo mysql80-community   //安装的时候指定关闭8.0版本打开5.7版本
安装mysql
yum -y groupinstall "Development Tools"
yum -y install mysql-community-serversystemctl start  mysqld   //首次启动初始化mysql
修改密码
grep "password" /var/log/mysqld.log   //日志中查找初始密码第一种方法mysqladmin -p'旧密码' password '符合密码策略的新密码'第二种方法vim /etc/my.cnf     //mysql的配置文件validate_password=OFF    //关闭密码策略mysqladmin -p'旧密码' password '新密码'systemctl restart mysqld   //重启服务后,就可以使用新密码登录

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

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

相关文章

鸿蒙实现年月日十分选择框,支持年月日、月日、日、年月日时分、时分切换

import DateTimeUtils from ./DateTimeUtils;CustomDialog export default struct RQPickerDialog {controller: CustomDialogControllertitle: string 这是标题TAG: string RQPickerDialog// 0 - 日期类型(年月日) 1 - 时间类型(时分&a…

Ubuntu安装ARM交叉编译器

Ubuntu安装交叉编译器 更新apt # 更新apt sudo apt update安装gcc sudo apt install build-essential查看gcc版本 gcc -v下载交叉编译工具 复制到用户目录 解压 tar -xvf gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabihf.tar.xz移动到/opt/下 sudo ./gcc-linaro-5.…

14、Kafka 请求是怎么被处理的

Kafka 请求是怎么被处理的 1、处理请求的 2 种常见方案1.1、顺序处理请求1.2、每个请求使用单独线程处理 2、Kafka 是如何处理请求的?3、控制类请求和数据类请求分离 无论是 Kafka 客户端还是 Broker 端,它们之间的交互都是通过 “请求 / 响应” 的方式完…

42 经典回溯算法题-全排列

问题描述:给你的那个一个不好喊重复数字的数组nums,返回其所有可能的全排列,你可以按照任何顺序返回答案; 回溯算法求解:定义一个used数组用来表征数组nums是否被选择,每一个回溯函数都要经过nums.length个…

Home Assistant HAOS版如何安装HACS

环境: Home Assistant 11.2 SSH & Web Terminal 17.0 问题描述: Home Assistant HAOS版如何安装HACS 解决方案: 1.打开WEB 里面的终端输入下面命令 wget -O - https://hacs.vip/get | bash -如果上面的命令执行后卡住不动&#xff…

深度学习模型(目标检测)轻量化压缩算法的挑战与解决方法

深度学习模型,尤其是用于目标检测的模型,是高度复杂的,通常包括数以百万计的参数和复杂的层次结构。虽然模型压缩和轻量化算法允许这些模型在资源受限的设备上部署和运行,但这仍然是一个活跃和具有挑战性的研究领域,包…

R语言生物群落(生态)数据统计分析与绘图丨R语言基础、tidyverse数据清洗、多元统计分析、随机森林模型、回归及混合效应模型、结构方程模型、统计结果作图

R 语言的开源、自由、免费等特点使其广泛应用于生物群落数据统计分析。生物群落数据多样而复杂,涉及众多统计分析方法。本教程以生物群落数据分析中的最常用的统计方法回归和混合效应模型、多元统计分析技术及结构方程等数量分析方法为主线,通过多个来自…

js 字符串之间转换

一. 字符串转换 (1)对象转字符串stringify var str JSON.stringify(weather);(2)字符串转对象 var obj JSON.parse(str);(3)数字转字符串toString() var num 2023; var str ; str num.toString();…

记一次jar冲突的问题

问题 业务中需要在spark中链接redis作为服务缓存,spark程序中引入redis的jar包后上传spark集群运行是报java.lang.NoSuchMethodError: com.xxx.common.pool.ConnectionPool.startAsync()Lcom/google/common/util/concurrent/Service;根据报错信息发现是jar包冲突造…

【Java】工业园区高精准UWB定位系统源码

UWB (ULTRA WIDE BAND, UWB) 技术是一种无线载波通讯技术,它不采用正弦载波,而是利用纳秒级的非正弦波窄脉冲传输数据,因此其所占的频谱范围很宽。UWB定位系统依托在移动通信,雷达,微波电路,云计算与大数据…

SQL Server 查询处理过程

查询处理--由 SQL Server 中的关系引擎执行,它获取编写的 T-SQL 语句并将其转换为可以向存储引擎发出请求并检索所需结果的过程。 SQL Server 需要四个步骤来处理查询:分析、代化、优化和执行。 前三个步骤都由关系引擎执行;第三步输出的是…

open3d bug:pcd转txt前后位姿发生改变

1、open3d bug:pcd转txt前后位姿发生改变 open3d会对原有结果进行一个微小位姿变换 import open3d as o3d import numpy as np# 读取PCD点云文件 pcd o3d.io.read_point_cloud(/newdisk/darren_pty/zoom_centered_s2.pcd)# 获取点云坐标 points pcd.points# 指定…

带你手把手解读rejail沙盒源码(0.9.72版本) (八) fnettrace-dns

fnettrace_dns.h 文章目录 fnettrace_dns.hmain.cprint_dnscustom_bpfprint_daterun_tracemain 补充DNSDNS协议报文格式**问题记录****资源记录****报文实例****请求报文****响应报文** DNS解析过程DNS 出现DNS 介绍DNS 域名DNS 域名组成DNS 域名空间DNS 域名解析DNS 解析器DNS…

Redis高级技巧:性能提升50%不是梦

Redis作为一种高性能的键值存储系统,在众多企业和开发者的技术栈中占有一席之地。然而,很多人在使用Redis时,往往只停留在基本操作层面,没有挖掘其更深层次的潜力。 本文探讨如何通过一系列高级技巧和实用的策略,将Re…

word的docx模板导出,poi

word中docx模板导出 后台模板在后台存放位置前台写法 后台 controller使用void也行 InputStream isTemplate this.getClass().getClassLoader().getResourceAsStream("templates/meet/testModel.docx"); String filename LocalDate.now().format(DateTimeFormatt…

SpringCloudGateway 3.1.4版本 Netty内存泄漏问题解决

一、 产生的异常 当时是服务器访问不到服务了,上去一看,无法申请资源OutOfDirectMemoryError了,内存级别的东西让人一阵头大,赶紧在线下模拟, 1. 减少分配的堆外内存,打开Netty的监测工具等有助于复现的…

#HarmonyOS:@ohos.promptAction (弹窗)---onProgressChange

组件实例 ohos.promptAction (弹窗) 导入模块 import promptAction from ohos.promptAction示例 try {promptAction.showToast({ message: Message Info,duration: 2000, bottom: 64 // 设置弹窗边框距离屏幕底部的位置}); } catch (error) {console.error(sho…

建筑模板怎么选?

在建筑领域,选择合适的模板材料对于确保工程质量、提高施工效率和控制成本至关重要。目前,常见的建筑模板主要有钢模板、塑料模板和木模板三种类型,每种都有其独特的优势和局限性。本文将对这些模板类型进行分析,并特别推荐广西生…

linux | sed 命令使用 | xargs命令 使用

##################################################### sed命令来自英文词组stream editor的缩写,其功能是利用语法/脚本对文本文件进行批量的编辑操作。sed命令最初由贝尔实验室开发,后被众多Linux系统集成,能够通过正则表达式对文件进行批…

C++11 【初识】

C11简介 1.在2003年C标准委员会曾经提交了一份技术勘误表(简称TC1),使得C03这个名字已经取代了C98称为C11之前的最新C标准名称。 2.不过由于C03(TC1)主要是对C98标准中的漏洞进行修复,语言的核心部分则没有改动,因此人们习惯性的把两个标准合…