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

[ MySQL ] — 数据库环境安装、概念和基本使用

目录

安装MySQL 

获取mysql官⽅yum源

安装mysql yum 源

安装mysql服务

启动服务

 登录

方法1:获取临时root密码

方法2:无密码

方法3:跳过密码认证

配置my.cnf

卸载环境

设置开机启动(可以不设)

常见问题

安装遇到秘钥过期的问题:

概念

什么是数据库?

主流数据库

基本使用

连接服务器

查看当前MySQL的数据库列表

创建数据库

使用数据库

创建数据库表

向表中插入数据

查询表中的所有数据 

服务器,数据库,表关系

 MySQL架构

 SQL分类

存储引擎

查看存储引擎

存储引擎对比


安装MySQL 

安装与卸载中,用户全部切换成为root,否则权限不够。

获取mysql官⽅yum源

获取mysql官⽅yum源 : Index of /232905 (mysql.com)

查看自己的系统版本:cat /etc/redhat-release

 找⼀下和自己版本⼀致的资源,下载到你的本地,然后上传到你的Linux服务器。如果觉得该网页看不清版本,可以单机鼠标右键,点击查看网页源代码。常用的就是5.7版本的,可以在5.7版本下找一找有没有符合自己机器版本的。这里没有7.6所以我下载的是标红的版本。

下载完成后找到文件(建议把文件移动到桌面上,好找!),在Linux机器上使用rz指令把它上传到机器上,也可以直接拖拽。把文件上传到一个新目录下,如下图,我们就可以看到安装包了。


安装mysql yum 源

查看你本地的yum源:ls /etc/yum.repos.d/ -l 

 看看你的系统里有没有mysql相关的yum源,我这里也是没有的。

 安装 yum 源 : rpm -ivh yum源文件

 安装后就有了mysql的 yum源了(如果安装出错了,看看是不是权限不够,可以转换成root用户或sudo)。

看看yum源能否正常工作: yum list | grep mysql

内容太多就不演示了。

注:安装上了以后安装包就可以删掉了,不删也没问题。


安装mysql服务

安装指令: yum install -y mysql-community-server

怎么判断自己是否安装成功了呢?

用下面三个指令验证:

ls /etc.mycnf 

which mysqld 

which mysql 


启动服务

启动 :systemctl start mysqld.service

 如下图,可以发现服务就启动起来了。


 登录

指令:mysql -uroot -p

 但是发现要密码,我们没有密码怎么办呢?别着急接着往下看。

方法1:获取临时root密码

指令:grep 'temporary password' /var/log/mysqld.log

 使用临时密码进行登录,然后修改密码。

 查看密码等级:show variables like '%validate_password%';    

 更改密码等级为low,低等级:set global validate_password_policy=0;      

更改密码长度为6:set global validate_password_length=6;    

修改本地登录密码,暂不授权远程登录:

ALTER USER 'root'@'localhost' IDENTIFIED BY '自己的密码';

FLUSH PRIVILEGES;


 

方法2:无密码

如果你安装的最新的mysql,没有所谓的临时密码,root默认没有密码,试着直接登陆⼀下。

方法3:跳过密码认证

使用指令打开mysql配置⽂件: vim /etc/my.cnf

在[mysqld]最后⼀栏配置(不知道是什么的,就放在配置⽂件最后) 添加:skip-grant-tables 选项

重启mysql服务 #  systemctl restart mysqld 

一定要先重启mysql服务再登录!

此时就可以登录了,可以直接把-p去掉 直接使用 mysql -uroot 登录,也可以不去掉-p ,在输入密码那里,直接回车即可。


配置my.cnf

主要是设置 数据库客⼾端和服务器的默认编码格式。

使用指令打开mysql配置⽂件: vim /etc/my.cnf

将这三个写入文件中

port=3306
character-set-server=utf8
default-storage-engine=innodb

配置完毕,重启mysql即可。重启mysql服务 #  systemctl restart mysqld 


卸载环境

如果有安装不合适的环境可以进行卸载

先检查是否有mariadb存在: # ps ajx |grep mariadb

如果有,需要先停⽌mariadb 服务 :# systemctl stop mariadb.service

或者检查是否有mysqld运行: # ps ajx |grep mysql

停止mysql 服务 :# systemctl stop mysqld

检查系统安装包

rpm -qa | grep mariadb 或   rpm -qa | grep mysql

卸载安装包:yum remove mysql (自己手动一个一个卸载) 

或  rpm -qa | grep mysql | xargs yum -y remove (把查询到的mysql安装包 全部卸载)

我这里就不卸载了,卸载mariadb也是一样的。


设置开机启动(可以不设)

使用云服务器的可以不设,因为云服务器基本不关机。

#设置开启开机⾃启动
systemctl enable mysqld
systemctl daemon-reload


常见问题

安装遇到秘钥过期的问题:

Failing package is: mysql-community-client-5.7.39-1.el7.x86_64
GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
解决⽅案:更新一下秘钥

命令行# rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022



 

概念

什么是数据库?

MySQL是一套提供数据存取的服务的网络程序。

MySQL的本质基于C(mysql)S(mysqld)模式的一种网络服务。

mysql  :是数据库的客户端;

mysqld:是数据库的服务端(一般一个可执行程序带d的,我们叫它守护进程)。

这个数据库一般指的是在磁盘或内存中存储的特定结构组织的数据,也就是说这是一种将来在磁盘上存储的一套数据库的方案。

数据库服务特指-mysqld。

存储数据用文件就可以了,为什么还要弄个数据库呢?

因为文件保存数据有以下几个缺点:

  • 文件的安全性问题
  • 文件不利于数据查询和管理
  • 文件不利于存储海量数据
  • 文件在程序中控制不方便

为了解决这些问题,专家们设计出更加利于管理数据的东西——数据库,它能更有效的管理数据。数据库的水平是衡量一个程序员水平的重要指标。

主流数据库

  • SQL Sever: 微软的产品,.Net程序员的最爱,中大型项目。
  • Oracle: 甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如MySQL。
  • MySQL:世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用在电商,SNS,论坛。对简单的SQL处理效果好。
  • PostgreSQL :加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研究使用,可以免费使用,修改和分发。
  • SQLite: 是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
  • H2: 是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。

基本使用

连接服务器

 平时在本地主机也可以省略掉 -h 和 -P。

 注:

  • 如果没有写 -h 127.0.0.1 默认是连接本地;
  • 如果没有写 -P 端口号 默认是连接3306端口号。

查看当前MySQL的数据库列表

show databases;

数据库默认存放在 /var/lib/mysql目录下

创建数据库

create database 数据库名称;

 

 创建数据库本质就是在Linux下创建的一个目录。

使用数据库

use 数据库名称;

创建数据库表

create table 表名称(表内容);

 创建数据库表本质就是在Linux下创建的一个文件。

向表中插入数据

查询表中的所有数据 

select * from 表名称;

数据库本质也是文件!只不过这些文件不由程序员直接操作,而是数据库服务帮我们进行操作。 

服务器,数据库,表关系

        所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。

数据库服务器、数据库和表的关系如下:

 MySQL架构

        MySQL 是一个可移植的数据库,几乎能在当前所有的操作系统上运行,如 Unix/Linux、Windows、Mac 和 Solaris。各种系统在底层实现方面各有不同,但是 MySQL 基本上能保证在各个平台上的物理体系结构的一致性。

 SQL分类

  • DDL【data definition language】 数据定义语言,用来维护存储数据的结构

        代表指令: create, drop, alter

  • DML【data manipulation language】 数据操纵语言,用来对数据进行操作

        代表指令: insert,delete,update

  • DML中又单独分了一个DQL,数据查询语言,代表指令: select
  • DCL【Data Control Language】 数据控制语言,主要负责权限管理和事务

        代表指令: grant,revoke,commit

存储引擎

存储引擎是:数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。

MySQL的核心就是插件式存储引擎,支持多种存储引擎。

查看存储引擎

show engines;

存储引擎对比

相关文章:

[ MySQL ] — 数据库环境安装、概念和基本使用

目录 安装MySQL 获取mysql官⽅yum源 安装mysql yum 源 安装mysql服务 启动服务 登录 方法1:获取临时root密码 方法2:无密码 方法3:跳过密码认证 配置my.cnf 卸载环境 设置开机启动(可以不设) 常见问题 安装遇到秘钥过期的问题&…...

Apache Thrift C++库的TThreadPoolServer模式的完整示例

1. 本程序功能 1) 要有完整的request 和 response; 2) 支持多进程并行处理任务; 3)子进程任务结束后无僵尸进程 2.Apache Thrift C++库的编译和安装 见 步步详解:Apache Thrift C++库从编译到工作模式DEMO_北雨南萍的博客-CSDN博客 3.框架生成 数据字段定义: cat D…...

图解java.util.concurrent并发包源码系列——深入理解ReentrantLock,看完可以吊打面试官

图解java.util.concurrent并发包源码系列——深入理解ReentrantLock,看完可以吊打面试官 ReentrantLock是什么,有什么作用ReentrantLock的使用ReentrantLock源码解析ReentrantLock#lock方法FairSync#tryAcquire方法NonfairSync#tryAcquire方法 Reentrant…...

【计算机网络】网络基础(上)

文章目录 1. 网络发展认识协议 2.网络协议初识协议分层OSI七层模型 | TCP/IP网络传输基本流程情况1:同一个局域网(子网)数据在两台通信机器中如何流转协议报头的理解局域网通信原理(故事版本)一般原理数据碰撞结论 情况2:跨一个路由器的两个子网IP地址与…...

51单片机(普中HC6800-EM3 V3.0)实验例程软件分析 实验四 蜂鸣器

目录 前言 一、原理图及知识点介绍 1.1、蜂鸣器原理图: 二、代码分析 前言 第一个实验:51单片机(普中HC6800-EM3 V3.0)实验例程软件分析 实验一 点亮第一个LED_ManGo CHEN的博客-CSDN博客 第二个实验:51单片机(普中HC6800-EM…...

无向图-已知根节点求高度

深搜板子题&#xff0c;无向图&#xff0c;加边加两个&#xff0c;dfs输入两个参数变量&#xff0c;一个是当前深搜节点&#xff0c;另一个是父节点&#xff08;避免重复搜索父节点&#xff09;&#xff0c;恢复现场 ///首先完成数组模拟邻接表#include<iostream> #incl…...

RIP动态路由协议 (已过时,逐渐退出舞台)

RIP 路由更新&#xff1a;RIP1/2 每30秒钟广播(255.255.255.255)/组播 &#xff08;224.0.0.9&#xff09;一次超时&#xff1a;180秒未收到更新&#xff0c;即标记为不可用&#xff08;跳数16&#xff09;&#xff0c;240秒收不到&#xff0c;即从路由表中删除 &#xff1b;跳…...

C++ operator关键字的使用(重载运算符、仿函数、类型转换操作符)

目录 定义operator重载运算符operator重载函数调用运算符operator类型转换操作符 定义 C11 中&#xff0c;operator 是一个关键字&#xff0c;用于重载运算符。通过重载运算符&#xff0c;您可以定义自定义类型的对象在使用内置运算符时的行为。 operator重载用法一般可以分为…...

深度学习笔记-暂退法(Drop out)

背景 在机器学习的模型中&#xff0c;如果模型的参数太多&#xff0c;而训练样本又太少&#xff0c;训练出来的模型很容易产生过拟合的现象。在训练神经网络的时候经常会遇到过拟合的问题&#xff0c;过拟合具体表现在&#xff1a;模型在训练数据上损失函数较小&#xff0c;预…...

使用自适应去噪在线顺序极限学习机预测飞机发动机剩余使用寿命(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

实验5-7 使用函数求1到10的阶乘和 (10 分)

实验5-7 使用函数求1到10的阶乘和 &#xff08;10 分&#xff09; 本题要求实现一个计算非负整数阶乘的简单函数&#xff0c;使得可以利用该函数&#xff0c;计算1!2!⋯10!的值。 函数接口定义&#xff1a; double fact( int n ); 其中n是用户传入的参数&#xff0c;其值不超过…...

kafka部署

1.kafka安装部署 1.1 kafaka下载 https://archive.apache.org/dist/kafka/2.4.0/kafka_2.12-2.4.0.tgz Binary downloads是指预编译的软件包,可供直接下载和安装,无需手动编译。在计算机领域中,二进制下载通常指预构建的软件分发包,可以直接安装在系统上并使用 "2.…...

Spring Security6入门及自定义登录

一、前言 Spring Security已经更新到了6.x,通过本专栏记录以下Spring Security6学习过程&#xff0c;当然大家可参考Spring Security5专栏对比学习 Spring Security5专栏地址&#xff1a;security5 Spring Security是spring家族产品中的一个安全框架&#xff0c;核心功能包括…...

开放式蓝牙耳机哪个品牌好用?盘点几款很不错的开放式耳机

​相比传统入耳式耳机&#xff0c;开放式耳机因其不入耳不伤耳的开放设计&#xff0c;不仅带来了舒适的佩戴体验&#xff0c;还创造了一种与周围环境互动的全新方式&#xff0c;户外运动过程时也无需担心发生事故&#xff0c;安全性更高。我整理了几款比较好用的开放式耳机给大…...

WebGL: 几个入门小例子

本文罗列几个WebGL入门例子&#xff0c;用于帮助WebGL学习。 一、概述 WebGL (Web Graphics Library)是一组基于Open ES、在Web内渲染3D图形的Javascript APIs。 Ref. from Khronos Group: WebGL WebGL™ is a cross-platform, royalty-free open web standard for a low-lev…...

PAT(Advanced Level)刷题指南 —— 第一弹

一、1001 A+B Format 1. 问题重述 给两个整数,输出这两个数的加和的结果,每三位用逗号分隔。 2. Sample Input -1000000 93. Sample Output -999,9914. 题解 思路:直接将两个整数相加,判断是否为负,是负数则直接输出负号并转为正数;然后将正数转为字符串,按规则每…...

【BASH】回顾与知识点梳理(九)

【BASH】回顾与知识点梳理 九 九. 扩展正则表达式(延伸正规表示法)9.1 egrep命令语法匹配指定模式的行(用法和grep相同)忽略大小写匹配(用法和grep相同)反向匹配(用法和grep相同)显示行号(用法和grep相同)递归搜索目录(用法和grep相同)匹配整词(用法和grep相同)统计匹配行数(用…...

Android 版本 对应的 API版本

Android 14&#xff08;开发者预览版&#xff09; 如需详细了解平台变更&#xff0c;请参阅 Android 14 文档。 Android 13&#xff08;API 级别 33&#xff09; 如需详细了解平台变更&#xff0c;请参阅 Android 13 文档。 Android 12&#xff08;API 级别 31、32&#xf…...

Django 异常信息 E302 expected 2 blank lines, found 1

在Django中&#xff0c;PEP 8风格指南建议在任何类定义之前都应该有两个空白行&#xff0c;包括视图&#xff08;views&#xff09;。错误信息"E302 expected 2 blank lines, found 1"表示在类定义之前只有一个空白行&#xff0c;而Django希望有两个空白行。 要修复…...

2019年09月《全国青少年软件编程等级考试》Python一级真题解析

一、单选题 第1题 关于Python的编程环境&#xff0c;下列的哪个表述是正确的&#xff1f; A&#xff1a;Python的编程环境是图形化的&#xff1b; B&#xff1a;Python只有一种编程环境ipython&#xff1b; C&#xff1a;Python自带的编程环境是IDLE&#xff1b; D&#…...

2024年赣州旅游投资集团社会招聘笔试真

2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装&#xff1b;只需暴露 19530&#xff08;gRPC&#xff09;与 9091&#xff08;HTTP/WebUI&#xff09;两个端口&#xff0c;即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理&#xff1a;刘治强&#xff0c;浙江大学硕士生&#xff0c;研究方向为知识图谱表示学习&#xff0c;大语言模型 论文链接&#xff1a;http://arxiv.org/abs/2407.16127 发表会议&#xff1a;ISWC 2024 1. 动机 传统的知识图谱补全&#xff08;KGC&#xff09;模型通过…...

【AI学习】三、AI算法中的向量

在人工智能&#xff08;AI&#xff09;算法中&#xff0c;向量&#xff08;Vector&#xff09;是一种将现实世界中的数据&#xff08;如图像、文本、音频等&#xff09;转化为计算机可处理的数值型特征表示的工具。它是连接人类认知&#xff08;如语义、视觉特征&#xff09;与…...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年&#xff0c;作为行业领先的3D工业相机及视觉系统供应商&#xff0c;累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成&#xff0c;通过稳定、易用、高回报的AI3D视觉系统&#xff0c;为汽车、新能源、金属制造等行…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

稳定币的深度剖析与展望

一、引言 在当今数字化浪潮席卷全球的时代&#xff0c;加密货币作为一种新兴的金融现象&#xff0c;正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而&#xff0c;加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下&#xff0c;稳定…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行

项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战&#xff0c;克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

基于SpringBoot在线拍卖系统的设计和实现

摘 要 随着社会的发展&#xff0c;社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统&#xff0c;主要的模块包括管理员&#xff1b;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...