当前位置: 首页 > news >正文

(三)Mysql 数据库系统全解析

一、Mysql 数据库

  1. 数据库的作用和优势

    • 作用:集中化存储结构性的数据。
    • 优势
      • 减小数据冗余,避免数据的重复存储。
      • 保证数据的真实有效和唯一性,提高数据的质量。
      • 方便数据共享访问,使得不同的用户和应用可以方便地获取所需数据。
      • 集中化管理方便数据备份,确保数据的安全性。
    • Mysql 数据库特点
      • 支持多进程多用户,可以同时为多个用户和进程提供服务。
      • 采用 C/S 设计结构,客户端和服务器分离,提高了系统的可扩展性和灵活性。
      • 简单易用支持图形化界面,方便用户进行操作和管理。
      • 安全可靠,提供了多种安全机制保障数据的安全。
  2. 常见数据库厂商

    • Oracle 甲骨文:旗下的 Mysql 开源免费且跨平台,而 Oracle 数据库收费闭源且跨平台。
    • Microsoft:Sql Server 是微软的数据库产品,只能运行在 Windows 平台使用。
  3. 安装 Mysql 依赖程序和创建管理组和用户

    • 安装依赖程序,使用命令[root@centos01 ~]# yum -y install ncurses-devel cmake
    • 创建管理 Mysql 服务组,使用命令[root@centos01 ~]# groupadd mysql
    • 创建用户加入 Mysql 组管理 Mysql 服务,使用命令[root@centos01 ~]# useradd -M -s /sbin/nologin -g mysql mysql

二、安装配置 Mysql 服务

  1. 解压配置 Mysql

    • 解压缩源代码程序,使用命令[root@centos01 ~]# tar zxf /mnt/mysql-5.5.22.tar.gz -C /usr/src/,然后切换到源代码目录[root@centos01 ~]# cd /usr/src/mysql-5.5.22/
    • 配置源代码 Mysql,使用命令[root@centos01 mysql-5.5.22]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DSYSCONFDIR=/etc,指定安装位置、默认字符编码、检验字符编码、支持更多字符编码以及初始化 Mysql 参数临时存储目录。
    • 编译安装 Mysql,使用命令[root@centos01 mysql-5.5.22]# make && make install
    • 检查是否创建安装目录,使用命令[root@centos01 mysql-5.5.22]# ls -ld /usr/local/mysql/
  2. 生成配置文件和服务控制文件

    • 生成配置文件,使用命令[root@centos01 mysql-5.5.22]# cp support-files/my-medium.cnf /etc/my.cnf
    • 生成服务控制文件,使用命令[root@centos01 mysql-5.5.22]# cp support-files/mysql.server /etc/init.d/mysqld
    • 添加执行权限,使用命令[root@centos01 mysql-5.5.22]# chmod +x /etc/init.d/mysqld
    • 添加系统服务,使用命令[root@centos01 mysql-5.5.22]# chkconfig --level 35 mysqld on,然后切换到主目录[root@centos01 mysql-5.5.22]# cd
  3. 优化 Mysql 命令

    • 优化 Mysql 命令,在/etc/profile文件中添加PATH=$PATH:/usr/local/mysql/bin/
    • 更新优化命令,使用命令[root@centos01 ~]# source /etc/profile
    • 初始化 Mysql,使用命令[root@centos01 ~]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
  4. 启动 Mysql 服务设置密码登录 Mysql

    • 启动 Mysql 服务,使用命令[root@centos01 ~]# systemctl start mysqld
    • 监听 Mysql 进程,使用命令[root@centos01 ~]# netstat -anptu | grep mysqld
    • 设置密码,使用命令[root@centos01 ~]# mysqladmin -uroot password
    • 登录 Mysql 数据库,使用命令[root@centos01 ~]# mysql -uroot -密码
    • 退出 Mysql,在 Mysql 命令行中输入exit

三、Mysql 数据库表记录管理授权

  1. 数据库管理

    • 查看数据库,在 Mysql 命令行中输入show databases;
    • 创建数据库名字,使用命令create database 名字;
    • 删除数据库,使用命令drop database 名字;
    • 创建并切换到数据库,使用命令create database benet;创建 benet 数据库,然后使用use benet;切换到 benet 数据库中。
  2. 表的管理

    • 创建表设计表结构表的名字 student 放在 benet 数据库中,使用命令create table benet.student (学号 int,姓名 char(7),性别 char(4),身份证号码 char(18),primary key (身份证号码));
    • 查看表,先使用use benet;切换到 benet 数据库,然后使用show tables;查看创建的表。
    • 删除 student 表,可以使用drop table student;drop table benet.student;
  3. 表中记录管理

    • 查看表结构,使用命令desc student;
    • 插入连续列数据到 student 表,使用命令insert into benet.student values (1,"名字","男","111111111111111111");
    • 插入不连续列,使用命令insert into benet.student (学号,姓名,身份证号码) values (2,'名字','22222222222222222');
    • 查询 Mysql 数据,使用命令select * from benet.student;
    • 修改数据,如将姓名是名字的性别修改为男,使用命令update benet.student set 性别="男" where 姓名="名字";,修改多列值可以使用update benet.student set 学号="3",性别="女" where 姓名="名字";
    • 查看指定列数据,使用命令select 姓名,身份证号码 from benet.student;
    • 删除匹配条件的用户,使用命令delete from benet.student where 姓名="用户";
    • 清空表中数据,使用命令delete from benet.student;
  4. Mysql 数据库授权

    • Mysql 数据库权限类型
      • all:完全控制权限。
      • insert:插入数据。
      • delete:删除数据。
      • update:修改数据。
      • select:查询权限。
    • 安装 Mysql 客户端,使用命令[root@centos02 ~]# yum -y install mariadb-devel mariadb
    • 授权 bob 用户通过主机 192.168.100.20 访问 Mysql 服务器密码为 密码,允许访问 benet 数据库下所有表进行插入数据,使用命令mysql> grant insert on benet.* to 'bob'@'192.168.100.20' identified by '密码';
    • 客户端远程登录,使用命令[root@centos02 ~]# mysql -h 192.168.100.10 -ubob -密码 客户端名字
    • 查看用户访问 mysql 数据库权限,使用命令mysql> show grants for 'bob'@"192.168.100.20";
    • 授权完全控制权限,使用命令mysql> grant all on benet.* to 'tom'@'192.168.100.30' identified by 'pwd@12345';
    • 撤销授权,使用命令mysql> revoke all on benet.* from 'tom'@'192.168.100.30';
    • 更新数据库,使用命令mysql> flush privileges;

通过以上步骤,我们可以成功安装、配置和管理 Mysql 数据库,实现对数据库表的创建、查询、修改和删除等操作,以及进行数据库授权管理,确保数据的安全和有效访问。

相关文章:

(三)Mysql 数据库系统全解析

一、Mysql 数据库 数据库的作用和优势 作用:集中化存储结构性的数据。优势: 减小数据冗余,避免数据的重复存储。保证数据的真实有效和唯一性,提高数据的质量。方便数据共享访问,使得不同的用户和应用可以方便地获取所需…...

SAP HCM 0001信息类型一个月内有多个成本中心

一般跨部门调动时候,成本中心都会变化,SAP默认都是读取wpbp的最后一一条数据,但是今天过账会读取两个单位的成本中心,一直都觉得很奇怪,SAP如何都拆分出这样的情况, 没办法只有debug,初始化系统…...

字节输入流

1.是什么 字节输入流(Byte Input Stream)在Java中是用来读取原始字节流的数据。Java的java.io包提供了多种字节输入流类,其中InputStream是所有字节输入流类的超类。以下是关于字节输入流的详细解释和举例: 字节输入流的概念&…...

深度学习-----------------机器翻译与数据集

目录 机器翻译与数据集下载和预处理数据集预处理步骤词元化词汇表该部分总代码 固定长度阶段或填充该部分总代码 转换成小批量数据集用于训练训练模型总代码 机器翻译与数据集 import os import torch from d2l import torch as d2l下载和预处理数据集 #save d2l.DATA_HUB[fr…...

SOMEIP_ETS_151: SD_Send_triggerEventUINT8Reliable_Eventgroup_2

测试目的: 验证DUT在Tester订阅事件组后,能够响应Tester触发的triggerEventUINT8Reliable方法,并将TestEventUINT8Reliable事件发送到订阅请求中端点选项指定的IP地址和端口。 描述 本测试用例旨在确保DUT能够正确处理事件组的订阅请求&am…...

32 C 语言指针的长度与运算(指针加减整数、指针自增自减、同类型指针相减、指针的比较运算)

目录 1 指针的长度 2 指针与整数的加减运算 3 指针自增与自减 4 同类型指针相减 5 指针的比较运算 6 测试题 1 指针的长度 在 C 语言中,sizeof 运算符可以用来计算指针的长度。指针的长度实际上与指针所指向的数据类型无关,而是与系统的位数&…...

【系统架构设计师】经典论文:轮软件三层架构设计

更多内容请见: 备考系统架构设计师-核心总结目录 文章目录 摘要正文总结摘要 本人于 2022 年 1 月参与了中石化 XX 油田 XX 采油厂“用电管理系统”的项目建设,该系统建设目标是实现分单位、分线路、分系统评价、优化、考核,全面提升采油厂用 电管理水平。在该项目组中我担…...

(C语言贪吃蛇)13.实现贪吃蛇四方向的移动

目录 前言 原代码预览 解决方法⚠️ 运行效果 总结 前言 我们上节通过Linux线程实现了两个while(1)同时运行,这样就可以一边控制方向一遍刷新出贪吃蛇的身体节点了。本节我们就来实现贪吃蛇四方向的移动。 (此图片为最终效果) 原代码预览 我们之前的代码是通过…...

Spring Boot + MyBatis 项目中常用注解详解(万字长篇解读)

Spring Boot MyBatis 项目中常用注解详解 在现代Java开发中,Spring Boot和MyBatis是两大热门框架,广泛应用于构建高效、可维护的企业级应用。两者结合使用,可以充分发挥各自的优势,提高开发效率和代码质量。在这个过程中&#x…...

AWS Network Firewall -NAT网关配置只应许白名单域名出入站

1. 创建防火墙 选择防火墙的归属子网(选择公有子网) 2. 创建规则白名单域名放行 3. 绑定相关规则 继续往下拉 绑定非托管规则 4. 配置网络路由 相关规则 参考图 解释 防火墙的归属公有子网路由表规则机器实例的规则子网路由表规则nat网管路…...

【C语言系统编程】【第二部分:并发编程】2.3 实践与案例分析

2.3 实践与案例分析 2.3.1 案例分析:多线程文件搜索程序 本文中,我们将通过一个多线程文件搜索程序的案例,展示如何在实际项目中应用多线程编程技术,并具体介绍任务分解、线程创建、结果汇总及锁机制的应用。 2.3.1.1 任务分解…...

React -AppVarContext.Provider 提供者组件

AppVarContext.Provider 是一个 React 上下文提供者,通常用于在组件树中提供共享的状态或数据。下面将详细解释 AppVarContext.Provider 的作用和如何使用它。展示如何使用 AppVarContext.Provider 来管理全局状态 1. 什么是上下文(Context)…...

【Python】解密用户代理:使用 Python User Agents 库探索浏览器和设备信息

Python User Agents 是一个专为解析 User Agent 字符串而设计的 Python 库。它能够轻松识别访问设备的类型(如移动设备、桌面设备或平板),并获取设备、浏览器、操作系统等详细信息。借助它,开发者可以更好地了解访问用户的设备属性…...

以串口接口为例介绍关于BSP底层架构开发的迭代过程

以串口接口为例介绍关于BSP底层架构开发的迭代过程 文章目录 以串口接口为例介绍关于BSP底层架构开发的迭代过程架构概述初代BSP二代BSP:三代BSP:四代BSP:架构概述 单片机开发有四个阶段: 阶段一:单一单片机的功能实现阶段 此阶段你开始熟悉STM32F1系列的单片机,并利用…...

Label-Studio ML利用yolov8模型实现自动标注

引言 Label Studio ML 后端是一个 SDK,用于包装您的机器学习代码并将其转换为 Web 服务器。Web 服务器可以连接到正在运行的 Label Studio 实例,以自动执行标记任务。我们提供了一个示例模型库,您可以在自己的工作流程中使用这些模型&#x…...

【PostgreSQL】实战篇——用户管理、角色和权限控制的高级用法及技巧

数据库中用户管理、角色和权限控制不仅仅是基础的安全措施,更是实现复杂应用需求和优化数据库性能的重要手段。 通过深入理解这些概念,数据库管理员可以更有效地管理用户访问、确保数据安全,并优化系统性能。以下是对这些概念的详细介绍以及…...

Leetcode: 0011-0020题速览

Leetcode: 0011-0020题速览 本文材料来自于LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解 遵从开源协议为知识共享 版权归属-相同方式…...

Hive数仓操作(七)

一、 Hive动态分区表 1. 动态分区与静态分区的区别 分区定义: 静态分区:在插入数据时,需要手动指定分区字段的值。动态分区:分区字段的值是根据数据中的某个字段自动生成的,用户只需指定分区字段的类型。 数据加载方…...

Redis进阶篇 - 缓存穿透、缓存击穿、缓存雪崩问题及其解决方案

文章目录 1 文章概述2 缓存穿透2.1 什么是缓存穿透?2.2 缓存穿透的解决方法2.2.1 做好参数校验2.2.2 缓存无效Key2.2.3 使用布隆过滤器2.2.4 接口限流 3 缓存击穿3.1 什么是缓存击穿?3.2 缓存击穿的解决方法3.2.1 调整热点数据过期时间3.2.2 热点数据预热…...

一天认识一个硬件之电源

无论是台式机还是笔记本,都离不开电源,台式机和笔记本电脑的电源都承担着将交流电转换为直流电,并为电脑内部各个部件提供稳定电力供应的重要任务。今天就来分享一下台式机和笔记本的电源区别 设计和功率 台式机电源:设计为内置…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上&#xff0c;看到基于小智 AI DIY 玩具的演示&#xff0c;感觉有点意思&#xff0c;想着自己也来试试。 如果只是想烧录现成的固件&#xff0c;乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外&#xff0c;还提供了基于网页版的 ESP LA…...

C++ 基础特性深度解析

目录 引言 一、命名空间&#xff08;namespace&#xff09; C 中的命名空间​ 与 C 语言的对比​ 二、缺省参数​ C 中的缺省参数​ 与 C 语言的对比​ 三、引用&#xff08;reference&#xff09;​ C 中的引用​ 与 C 语言的对比​ 四、inline&#xff08;内联函数…...

C++中string流知识详解和示例

一、概览与类体系 C 提供三种基于内存字符串的流&#xff0c;定义在 <sstream> 中&#xff1a; std::istringstream&#xff1a;输入流&#xff0c;从已有字符串中读取并解析。std::ostringstream&#xff1a;输出流&#xff0c;向内部缓冲区写入内容&#xff0c;最终取…...

爬虫基础学习day2

# 爬虫设计领域 工商&#xff1a;企查查、天眼查短视频&#xff1a;抖音、快手、西瓜 ---> 飞瓜电商&#xff1a;京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空&#xff1a;抓取所有航空公司价格 ---> 去哪儿自媒体&#xff1a;采集自媒体数据进…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕&#xff0c;#AI 监考一度冲上热搜。当AI深度融入高考&#xff0c;#时间同步 不再是辅助功能&#xff0c;而是决定AI监考系统成败的“生命线”。 AI亮相2025高考&#xff0c;40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕&#xff0c;江西、…...

Java + Spring Boot + Mybatis 实现批量插入

在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法&#xff1a;使用 MyBatis 的 <foreach> 标签和批处理模式&#xff08;ExecutorType.BATCH&#xff09;。 方法一&#xff1a;使用 XML 的 <foreach> 标签&#xff…...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)

本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...

08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险

C#入门系列【类的基本概念】&#xff1a;开启编程世界的奇妙冒险 嘿&#xff0c;各位编程小白探险家&#xff01;欢迎来到 C# 的奇幻大陆&#xff01;今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类&#xff01;别害怕&#xff0c;跟着我&#xff0c;保准让你轻松搞…...