MySQL基础(三十一)

news2024/12/24 21:42:12

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

前言

一、概述

1.  什么是数据库

2.  数据库能干什么

2.1 企业应用

2.2 金融行业

2.3  电子商务

2.4 社交媒体

2.5 物联网

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

  3.1  可靠性和稳定性

  3.2 数据管理能力

  3.3 数据共享和集成

  3.4 数据安全性和隐私保护

 3.5 减少数据冗余

二、数据库类型

 1. 关系型数据库,RDBMS

1.1  概述

1.2 特点

1.3  代表产品

 2.非关系型数据库,NoSQL

2.1 概述

2.2 特点

2.3 代表产品

三、数据库模型

1. 层次型数据库模型

2.网状型数据库模型

3.关系型数据库模型

4. 非关系型模型

四、MySQL 安装

1. yum 安装

1.1 下载安装包

1.2 安装数据库服务

1.3   登录数据库

​1.4 重启MySQL

​1.5 重新登录数据库

​1.6 查看数据库

​1.7 创建root用户使用新的密码

1.8 赋予root权限

​1.9 刷新配置,退出数据库

​1.10 恢复最开始的配置文件

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

2. 直接yum安装mariadb

3. 源码安装 

3.1 注意事项

3.1 安装前的准备

五、mysql登录

总结



前言

从今天开始正式进入数据库的学习了,但是今天的内容相对来说比较简单,第一次接触,主要是一些概念的讲解和MySQL的安装,接下来,一起来看看今天的内容吧 !


提示:以下是本篇文章正文内容,下面案例可供参考

一、概述

 1.  什么是数据库

  将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合
            银行存款的信息
            电话薄
        数据库是存储、管理和操作组织化数据的软件系统

2.  数据库能干什么

2.1 企业应用

存放用户数据、管理企业数据

2.2 金融行业

 存储分析客户的财务数据

2.3  电子商务

  存储产品信息、订单信息等

2.4 社交媒体

  存储社交消息数据

2.5 物联网

  物联网设备在云服务平台的数据存储

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

   3.1  可靠性和稳定性

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

  3.2 数据管理能力

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

  3.3 数据共享和集成

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

  3.4 数据安全性和隐私保护

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

  3.5 减少数据冗余

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

二、数据库类型

 1. 关系型数据库,RDBMS

1.1  概述

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

1.2 特点

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

1.3  代表产品

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

 2.非关系型数据库,NoSQL

2.1 概述

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

2.2 特点

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

2.3 代表产品

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

三、数据库模型

1. 层次型数据库模型

 1966年,IBM研究员Codd提出层次结构模型
        它的数据结构如同树状结构。每个节点都只有一个父节点,但可以有多个子节点
        这种模型存在层次结构复杂、扩展性差、数据操作限制等问题

2.网状型数据库模型

1969年,CODASYL工作组发布了网络模型
        它使用复杂链表来表示数据之间的关系,并增加了数据结构的灵活性和递归处理能力,从而解决了层次结构模型的一些问题
        解决了层次结构模型的一些问题。但是网络模型需要了解复杂的物理存储结构,对程序设计人员的要求比较高

3.关系型数据库模型

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

 4. 非关系型模型

非关系模型是指在数据库中,数据的组织方式不是基于关系模型来建立的,而是通过其他的方式来组织和表示数据。

非关系模型相对于关系模型来说更加灵活,可以更好地适应不同类型的数据和应用需求。但同时,非关系模型也更加复杂,操作和查询数据的难度较高。
 

四、MySQL 安装

1. yum 安装

1.1 下载安装包

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

 1.2 安装数据库服务

 rpm -ivh mysql57-community-release-el7-8.noarch.rpm
    yum -y install mysql-server

 安装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 

 1.3   登录数据库

提示密码错误

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

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

解决问题

使用随机密码登录
                     查看临时密码
        grep 'temporary password' /var/log/mysqld.log
           登录时使用查看到的随机密码
        mysql -u root -p
        Enter password: 输入随机密码

自行重置密码
     重置密码的第一步就是跳过MySQL的密码认证过程
         进入数据库的配置文件
                    vim /etc/my.cnf
        添加参数,不验证密码进入mysql
                  skip-grant-tables


    1.4 重启MySQL

   systemctl restart mysqld


    1.5 重新登录数据库

  重新登录时,直接按回车


   1.6 查看数据库

show databases;


        使用mysql数据表
            use  mysql;

        show tables;

       select * from user /G


      1.7 创建root用户使用新的密码

create  user  'root'@'localhost' identified by '123456';
            如果报错,先刷新配置,在删除原来的root用户,然后再执行创建的操作
                flush privileges;
                drop user 'root'@'localhost';
                create  user  'root'@'localhost' identified by '123456';


   1.8 赋予root权限

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


    1.9 刷新配置,退出数据库

 flush privileges;
        exit


    1.10 恢复最开始的配置文件

          vim /etc/my.cnf
        去掉配置项skip-grant-tables


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

        systemctl restart mysqld
        mysql -uroot -p123456

2. 直接yum安装mariadb

yum -y install mariadb mariadb-server
    不使用配置文件越过密码验证,修改密码
        mysqladmin  -uroot -p password '新密码'

3. 源码安装 

3.1 注意事项

    CPU最少2核以上
    内存最少2G以上
    swap分区2G以上
    硬盘空间至少20G以上

3.1 安装前的准备

安装依赖包
    yum -y install gcc gcc-c++ ncurses ncurses-devel libaio-devel openssl openssl-devel

下载安装包
    cmake-3.9.1-Linux-x86_64.tar.gz
        安装cmake,8.0版本的mysql需要cmake3.5版本以上。
    gcc-6.3.0.tar.gz
        8.0版本的mysql需要gcc版本为5.3以上
    mysql-boost-8.0.13.tar.gz
        下载带有boost的安装包

安装gcc/升级gcc
    安装gcc依赖包
        yum -y install gmp gmp-devel mpfr mpfr-devel libmpc libmpc-devel glibc-headers
    安装gcc
        tar xf gcc-6.3.0.tar.xz
        cd gcc-6.3.0/
        ./configure --disable-multilib && make && make install
            这个编译会非常非常久,就慢慢等吧,如果有双核CPU可以使用make -j2,4核CPU可以使用make -j4可以大大提高编译速度。

安装mysql
    tar xf mysql-boost-8.0.13.tar.gz
    cd mysql-8.0.13/
    cmake  -DBUILD_CONFIG=mysql_release \
-DINSTALL_LAYOUT=STANDALONE \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DENABLE_DTRACE=OFF \
-DWITH_EMBEDDED_SERVER=OFF \
-DWITH_INNODB_MEMCACHED=ON \
-DWITH_SSL=bundled \
-DWITH_ZLIB=system \
-DWITH_PAM=ON \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DINSTALL_PLUGINDIR="/usr/local/mysql/lib/plugin" \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EDITLINE=bundled \
-DFEATURE_SET=community \
-DCOMPILATION_COMMENT="MySQL Server (GPL)" \
-DWITH_DEBUG=OFF \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SSL=system \
-DWITH_BOOST=./boost
    make -j2/4
    make install

配置
    创建数据库文件夹和日志文件夹,更改用户为mysql
        useradd -s /sbin/nologin mysql
        mkdir -p /data/mysql
        chown -R mysql:mysql /data/mysql/
        mkdir -p /var/log/mysql
        chown -R mysql:mysql /var/log/mysql/
        mkdir -p /var/run/mysql
        chown -R mysql:mysql /var/run/mysql
    修改配置文件my.cnf
        vim /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysql/mysql.log
pid-file=/var/run/mysql/mysql.pid
!includedir /etc/my.cnf.d
    初始化mysql数据库
        /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/
            随机密码会在提示信息中显示
    复制服务文件到/etc/init.d目录下
        cp /opt/mysql-8.0.20/support-files/mysql.server /etc/init.d/
        chmod a+x /etc/init.d/mysql.server
        /etc/init.d/mysql.server start
    查看服务
        netstat -anptl | grep mysql
    登录数据库修改初始root密码
        echo "export PATH=/usr/local/mysql/bin:$PATH:/usr/local/bin" >/etc/profile.d/mysql.sh
        source /etc/profile.d/mysql.sh
        mysql -u root -p
            在回车之后输入随机密码
    修改密码
        mysql> alter user 'root'@'localhost' identified with mysql_native_password BY '新密码';
        mysql> flush privileges;
        修改用户密码
            ALTER USER 'username'@'localhost' IDENTIFIED BY 'new_password';
        看到Query OK, 0 rows affected (0.00 sec)则操作成功

五、mysql登录

   本地登录
        使用命令
   借助软件登录
        navicat

六、mysql配置

6.1  数据库目录结构

1.  rpm安装

        mysql:存储MySQL的数据文件和表结构定义等。
        mysql-files:存放需要MySQL账户权限的文件。
        mysql-keyring:存放加密密钥,以供MySQL使用。
        mysql.sock:MySQL服务器的Unix套接字文件。
        ib_logfile0和ib_logfile1:InnoDB引擎的事务日志文件。
        ibdata1:InnoDB引擎的数据文件,包括表数据和索引等。
        *.err:MySQL错误日志文件,记录MySQL运行时的错误和警告等信息。
        *.pid:MySQL进程ID文件,存储MySQL进程的进程号。

2. 源码安装

  mysql-<version>/
        ├── extra/            # 额外的工具和脚本
        ├── include/            # 包含头文件
        ├── lib/            # 包含库文件
        │        ├── libmysqlclient.so    # MySQL 客户端库文件
        │        └── libmysqld.so    # MySQL 服务器端库文件
        ├── share/            # 包含共享文件
        ├── support-files/        # 包含初始化脚本和系统服务
        │        ├── mysql.server    # MySQL 服务启动脚本
        │        ├── mysql.service    # MySQL systemd 服务配置
        │        └── ...             # 其他各种脚本和配置文件
        ├── bin/            # MySQL 二进制文件
        │        ├── mysqld        # MySQL 服务器二进制文件
        │        ├── mysql        # MySQL 客户端二进制文件
        │        ├── mysqladmin    # 管理 MySQL 服务器的工具
        │        ├── mysqldump        # 导出 MySQL 数据库的工具
        │        └── ...            # 其他各种 MySQL 工具
        ├── man/            # MySQL 帮助手册
        ├── docs/             # MySQL 文档
        ├── sql/            # MySQL SQL 脚本文件
        └── zlib/            # MySQL 所依赖的 zlib 库

6.2 主配置文件详解

/etc/my.cnf
        [mysqld]
            [mysqld]"表示该段配置是针对MySQL服务器的
        datadir=/var/lib/mysql
        socket=/var/lib/mysql/mysql.sock
        log-error=/var/log/mysql/mysql-error.log
        pid-file=/var/run/mysql/mysql.pid
        max_connections=500
        character-set-server=utf8mb4
        collation-server=utf8mb4_unicode_ci
        [mysql]
            [mysql]"中的配置项表示该段配置是针对MySQL客户端的
        default-character-set=utf8mb4
    拓展配置项
        port:MySQL端口号
        log_warnings:设置错误日志是否记录警告信息
        slow_query_log_file:慢日志文件路径名
        long_query_time:当查询时间超过指定的秒数时,会被记录到慢日志中
        innodb_buffer_pool_size:InnoDB缓存池大小
        join_buffer_size:用于JOIN操作的缓存大小
        max_allowed_packet:MySQL允许传输的最大数据包大小
        skip_name_resolve:禁用DNS解析

拓展实验:

要求

1. mysql -uroot -p123456

   show databases

 2. create database class;

    show databases;

3. use class;

   show tables;

4. mysql> create table students(

    -> 编号 int not null,

    -> 姓名 varchar(20) not null,

    -> 性别 char(10) not null

    -> )character set utf8mb4 collate utf8mb4_unicode_ci;

 5. show tables;

     select * from students;

     describe students;

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

select * from students\g


总结

以上就是今天要讲的内容,主要是数据库的概念和安装,几乎没有任何难度,跟着做就可以了。

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

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

相关文章

C#常见技能_参数传递

大家好&#xff0c;我是华山自控编程朱老师 前几天一个学员在学习C#与参数传递交互时,也不知道参数传递可以用来做什么 。下面我们就详细讲讲C# 和参数传递交互的相关知识。 C#是一种面向对象的编程语言&#xff0c;支持多种参数传递方式&#xff0c;包括传值和传引用两种方式…

Ubuntu18.04 下配置Clion

配置Clion 安装gcc、g、make Ubuntu中用到的编译工具是gcc©&#xff0c;g&#xff08;C&#xff09;&#xff0c;make(连接)。因此只需安装对应的工具包即可。Ubuntu下使用命令安装这些包&#xff1a; &#xff08;1&#xff09;安装gcc sudo apt install gcc&am…

Mysql错误日志、通用查询日志、二进制日志和慢日志的介绍和查看

一.日志 1.日志和备份的必要性 日志刷新 2.mysql的日志类型 &#xff08;1&#xff09;错误日志 查看当前错误日志和是否记录警告设置 &#xff08;2&#xff09;通用查询日志 查看通用查询日志的设置 &#xff08;3&#xff09;二进制日志 查看二进制文件的设置&…

【Java基础教程】(四十五)IO篇 · 中:转换流、内存流和打印流(探索装饰设计模式与PrintStream类的进阶),文件操作案例实践、字符编码问题~

Java基础教程之IO操作 中 &#x1f539;本节学习目标1️⃣ 转换流2️⃣ 案例&#xff1a;文件复制3️⃣ 字符编码4️⃣ 内存流5️⃣ 打印流5.1 打印流设计思想——装饰设计模式5.2 打印流5.3 PrintStream 类的改进 &#x1f33e; 总结 &#x1f539;本节学习目标 掌握内存操作…

C++初阶 - 5.C/C++内存管理

目录 1.C/C的内存分布 2.C语言中动态内存管理方式&#xff1a;malloc、calloc、realloc、free 3.C内存管理方式 3.1 new/delete操作内置类型 3.2 new 和 delete操作自定义类型 4.operator new 与 operator delete 函数&#xff08;重要点&#xff09; 4.1 operator new 与…

Go语言开发者的Apache Arrow使用指南:扩展compute包

在本系列文章的第4篇《Go语言开发者的Apache Arrow使用指南&#xff1a;数据操作》[1]中我们遇到了大麻烦&#xff1a;Go的Arrow实现居然不支持像max、min、sum这样的简单聚合计算函数:(&#xff0c;分组聚合(grouped aggregation)就更是“遥不可期”。要想对从CSV读取的数据[2…

如何在代码中用宏定义确定VS编译器版本

我们经常需要将同一个代码文件在不同的编译器下编译&#xff0c;实际上对应着不同的代码&#xff0c;这个时候就可以使用宏定义来进行判断&#xff0c;比如如下代码&#xff1a; #if _MSC_VER >1900 // VS2015或者以上 #ifndef _CRT_SECURE_NO_WARNINGS #define _CRT_SECUR…

第十四届蓝桥杯大赛青少年省赛C++组试题真题 2023年5月

一、选择题 第 1 题 单选题 C中&#xff0c;bool类型的变量占用字节数为 ( )。 A. 1 B. 2 C. 3 D. 4 第 2 题 单选题 以下关于C结构体的说法&#xff0c;正确的是 ( )。 A. 结构体中只能包含成员变量&#xff0c;不能包含成员函数 B. 结构体不能从另一个结构体继承 …

发布npm包流程

发布npm包的步骤如下&#xff1a; 在终端中通过 npm init 命令创建一个新的npm包&#xff0c;按照提示填写包的信息&#xff0c;如包名称、版本、描述、作者、许可证等。 在包的根目录下创建一个 index.js 文件&#xff0c;编写你的代码。 确认你已经注册了npm账号&#xff0…

Vue二次封装axios为插件使用

基本的封装要求&#xff1a;统一 url 配置 统一 api 请求 request (请求)拦截器&#xff0c;例如&#xff1a;带上token等&#xff0c;设置请求头 response (响应)拦截器&#xff0c;例如&#xff1a;错误处理&#xff0c;页面重定向等 根据需要&#xff0c;结合 Vuex 做全局的…

【三维点云处理】顶点、面片、邻接矩阵、邻接距离矩阵以及稀疏存储概念

文章目录 vts和faces基础知识vertices-节点&#xff08;3是点的三维坐标&#xff09;faces-面片&#xff08;3是构成三角形面片的3个点&#xff09; 邻接矩阵邻接距离矩阵&#xff08;NN500&#xff09;稀疏矩阵 vts和faces基础知识 vertices-节点&#xff08;3是点的三维坐标…

git 实操

首先有安装好的git,安装好后,会在任一目录下右键出现git bash和git gui两个选项 打开git bash,设置好全局变量,用户名和邮箱,设置方法为: git config -- global user.name "xxx" git config --global user.email "xxxxxx.com" 1.创建版本库 git init 命…

Photoshop2023beta常见问题|ps 2023测试版智能AI功能不能用如何解决?

PS beta ai创成式填充用不了怎么办 生成图像出错解决方法&#xff1f;PS 2023最新版本更新了超强大的AI功能&#xff0c;可以一键生成或删除用户选中的内容&#xff0c;这可大大提高了生成图片的效率。生成出来的图片也被公认为质量超高&#xff0c;虽然偶尔可能有点小瑕疵&…

ajax/axios访问后端测试方法

文章目录 1、浏览器执行javascript方法GET请求POST请求 2、Postman测试工具GET请求POST请求 3、idea IDE提供的httpclient4、Apache JMeter 1、浏览器执行javascript方法 GET请求 http://localhost:6060/admin/get/123 POST请求 技巧&#xff1a;打开谷歌浏览器&#xff0c…

混战源起 ChatGPT,中国的 AI 产业怎么样了?

文章目录 前言一、回顾上半年的“百模大战”1.1 什么是“百模大战”1.2 AI大模型对我们的影响 二、中国AI产业现状三、我国在AI产业的前景与挑战结语 前言 北京时间7月13日凌晨&#xff0c;马斯克在Twitter上宣布&#xff1a;“xAI正式成立&#xff0c;去了解现实。”马斯克表示…

【Linux Shell】基础知识

Linux Shell基础知识 一、Linux Shell基础概念1.1 Shell定义1.2 命令行提示符 二、初识Shell2.1 Shell定义2.2 登录Shell相关文件2.3 Shell中的变量变量类型变量的引用单引号\ 与双引号\" \"变量的删除与检查 2.4 Shell中的扩展大括号扩展{ }其他扩展 一、Linux Shel…

STM32MX配置EEPROM(AT24C02)------保姆级教程

———————————————————————————————————— ⏩ 大家好哇&#xff01;我是小光&#xff0c;嵌入式爱好者&#xff0c;一个想要成为系统架构师的大三学生。 ⏩最近在开发一个STM32H723ZGT6的板子&#xff0c;使用STM32CUBEMX做了很多驱动&#x…

临床检验系统LIS

临床检验系统(Laboratory Information System)是一个能实现检验信息电子化、检验信息管理自动化的网络系统&#xff0c;其主要功能是将检验的实验仪器传出的检验数据经分析后&#xff0c;生成检验报告&#xff0c;通过网络存储在数据库中&#xff0c;使医生能够方便、及时的看到…

助力中小企业数字化改造 象过河把中小企业老板当成“自己人”

燥热的夏日午后&#xff0c;在郑州市国家大学科技园附近的一家咖啡店里约见了象过河软件研发的总负责人象海先生。 温文儒雅、润物无声的象海先生自信豁达、成熟冷静。软件开发技术出身的他&#xff0c;善于通过软件开发定制来帮助中小企业解决各种错综复杂的业务、仓储以及财…

Could not resolve placeholder

本质原因&#xff1a;项目启动未扫描到该配置&#xff0c;一般来说是配置不对 检查方向 1、检查编译后的target包里是否有该配置所在的文件 如果不在就clear&#xff0c;重新编译启动再去检查 2、检查启动的环境是否匹配 编译后的target包下的配置文件名称是否跟启动类的环境…