与MySQL邂逅

news/2024/9/17 7:51:05/ 标签: mysql, 数据库

MySQL安装捏~

其实每次新学一样东西,安装永远是一个小坎

但是小问题啦

安装MySQL要用root账户,安装后普通用户也可以用捏

要安装MySQL先来看第一步!

改bug!

Centos

卸载不要的环境

先康康有木有捏:

649d3cc8c3a6480c8850de4fd58c6e84.png

mariadb就是MySQL,是它的拉出来的一个开源的分支

怎样关掉MySQL呢?

systemctl stop mysqld

但是我这个本来就没哈,所以关不了

d95be0f8853f425f9a793ab354c1c006.png

MySQL在卸载的时候不会删数据(也在情理之中捏)

获取yum源

emmm,我的系统还没安装yum(Ubuntu)

这样安装yum:

apt-get install build-essential

好了出bug了安不了,报错信息是

34d59f8940204c31a82fc9dd2e9ae977.png

开始搜解决方法: 

sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
sudo vim /etc/apt/sources.list

官网是这样的(已疲惫):

https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/

ee90c83f0ef04656b886cdea6946e5e5.png

 然后按照官网把这个写到刚vim的那个文件下,我的是这样的:

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse# 以下安全更新软件源包含了官方源与镜像站配置,如有需要可自行修改注释切换
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse# 预发布软件源,不建议启用
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse

 然后再这样:

sudo apt-get update

c24e48efed7741cfa2e182346600694c.png

 草(一种植物):

d3e05d3c32ee4626963523f82461c0dc.png

阿我先不装了,我换种思路吧

狗屁bug毁我青春:

30750518595142f69d8d7e6e36add28e.png

不行我先把这个说完,假设我现在用的是centos奥

Index of /232905 (mysql.com)https://repo.mysql.com/

输入这个网址,然后你会看到yum源:

8898ae7656154d61991c8a5c77b3525b.png

其中MySQL5.7是比较常用的

 要选择和系统相匹配的yum源

两个思故乡的小女孩:

5e84de47457a4b95abdcfbe40fa21773.png

45c71f6bad04430da7aa96756305cf86.png

下载到桌面上再rz到Linux上

获得rpm包

看系统中支持的yum源是这样的捏:

ls /etc/yum.repos.d/ -l

然后用rpm安装是这样的:

rpm -ivh 你刚才下载过来的包

查看是这样的:

ls /etc/yum.repos.d/ -l

 73866ccfc18a42d597d5401489bb7c7f.png

这个查看安没安装完:

yum list | grep mysql

安装的yum源最后会自动适配系统

刚都是配置,还没正式安装

yum install -y mysql-community-server

这才是安装,小砸! 

如果有报错显示秘钥过期就:

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

导入新的秘钥! 

然后安装完查看:

这是服务端:

which mysqld

9cb048491dc4403f82cbe3d0ba946a96.png

这是客户端:

f322f1f1ecc74e23a4de4604de5c44a3.png

这是启动!

 systemctl start mysqld

 这是查询!

netstat -nltp

5f182dadc2054eb8b34a8f31069e7f50.png

Ubuntu

 听说还是要先这样,更新列表:

sudo apt-get update

 然后这样安装服务器:

sudo apt-get install mysql-server

 6003633bde0b47d7a4c03616a520e3bb.png

然后这样安装客户端

sudo apt-get install mysql-client

 46d7bff8fd7947b0882eb14f0953a518.png

二者区别:

mysql-server 是MySQL核心程序将安装MySQL数据库服务器,用于生成管理多个数据库实例,持久保存数据并为其提供查询接口(SQL),供不同客户端调用。

mysql-client 是操作数据库实例的工具,允许连接到MySQL服务器使用该查询接口。

它将为您提供MySQL命令行程序。

如果只需要连接到远程服务器并运行查询,只安装mysql-client就可以了。如果是服务器只提供连接服务的只需要安装mysql-server

然后这样配置MySQL:

sudo mysql_secure_installation

然后要设个密码:

e962d95f5abc4beca3f99ec18f8ea91c.png

这是设置密码,自己选择密码强度

我就设个中等的吧,好吧它好像跳过了

那我也跳过吧,毕竟我也看不懂

cd04a059fb3f4a0c96418ccc75ab63f2.png

真是一切都完蛋了呢 a3bff8997abf4800afefe1460a5fdb6e.png

 安装完了:

0dc5fa25f2e24e01b715af7ebba4b5cb.png

 测试是这样的:

systemctl status mysql.service

 915a0627bc8343ae97cf85e0009cfd63.png

启用是这样的:

sudo service mysql start
sudo systemctl start mysql.service

 e805e8f592b54813bf444a48f5fab6cf.png

7e0b7debcb7e417094e86a880777eb00.png

喵喵喵:

netstat -nltp

 4bf99f3936e74be795cf4938b955d335.png 

登录 

登录用这个命令:

mysql -uroot -p

7cc6849240f34c148c6680eed1b7419d.png

可以改配置文件以免密登录

配置文件在这里捏:

69acfde425b74463958a8569496e00a3.png

MySQL是网络服务,可以绑定账号,默认的端口号是3306,可以改(而且一般都要改)

datadir是数据所在的路径

要设置一下编码方式和默认的搜索引擎:

character-set-server=utf8
default-storage-engine=innodedb

改完配置文件要让其重启一下以生效:

service mysql restart

好吧不可以,改不了

79c5afdc2d6f4de6a516f0d4be738bd3.png

那就干脆不改了吧

基础

在MySQL有很多选项

这是比较完备的使用:

mysql -h 127.0.0.1 -P 3306 -u root -p

不加就是默认咯

 -h是指明登录部署了MySQL服务的主机

-P是指明要访问的端口号

-u是指明用户(目前默认是root)

-p是指明需要输入密码

密码输入的时候是不回显的

什么是数据库

可以看这个:

09dea30b6b13485bb61415f29c826f0a.png

MySQL是一种网络服务 

mysql数据库服务的客户端

mysqld是数据库服务的服务器端

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

mysql是一套给我们提供数据存取的服务的网络程序

数据库指的是在磁盘或内存中存储的特定结构组织的数据,是在磁盘上存储的一套数据库方案

数据库服务则特指mysqld

存储用文件就行了,为何还要用数据库

一般的文件确实提供了数据的存储功能,但文件并没提供非常好的数据管理能力(用户角度)

数据库本质是对数据内容存储的一套解决方案(给字段或要求,返回结果)

一个高端的execl表格

  所以文件保存数据的缺陷就很明显咯:

安全性不高

不利于数据查询和管理

不利于存储海量数据

程序中控制不方便

主流数据库

先来看看数据库

使用mysql建立一个数据库,建立一张表结构,插入一些数据,对比一哈mysql在linux中是如何表现得

这是看一眼:

show databases;

2eae23d85ceb401993aa639ce73ed99e.png

来看看这个存储数据的地方

d30ddec69ee9417fb2c750516dd74ae5.png

这样建立一个数据库

​create database helloworld;

 93c90ae6f970498f8704d98bbbef14dd.png

能看到哩:

aaba5cf4a77f462498e607ff9252afc8.png

这也可以:

4f238d819c414a079763cffa5c5328aa.png

建立数据库本质是Linux下的一个目录

数据库进行操作首先要选择一个数据库

use helloworld;

9378bf6b4b6045fa87ea7536bb519e9b.png

好吧打错字了,我不想跟这世界说hello

这样创建 一个表结构:

create table student(name varchar(32),age int,gender varchar(2));

 1e619325ae9b4cfe8643db0b6e0cbc4a.png

 然后我们还可以发现多了个这个东西:

3b3e6329e7d7461b92e26fcbd1488c6b.png

 在数据库下建表本质就是在Linux下建立文件

向表中插入数据可以这样操作:

insert into student (name,age,gender)values('墨墨',18,'女');

aa97bee042ef4aaba7a77dcefc80f3f0.png

多插入几个可以这样筛选数据:

select * from student;

 da2683bcf95e47f987f0547fc507c0ad.png

 那建立各种东西的操作是谁做的呢?

mysql服务!

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

谈谈主流的数据库吧,受欢迎的数据库技术和生态都是很不错的!

MySQL是世界上最受欢迎的数据库,而炉石传说是世界上最好的游戏!

属于甲骨文,并发性比较好,不适合做复杂的业务,主要用于电商,SNS,论坛,优点是对简单的SQL处理效果好

新bug出现了:

0f13d0af4612484b9f39c19571552128.png

服务器、数据库、表关系 

 a8102d2d6cc4473d8821aeda8ea9edfc.png

罗列下相应关系吧:

安装数据库服务器是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库(一般一个应用一个数据库

为了保存应用中的实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据

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

SQL有一些分类

DDL:数据定义语言,用来维护存储数据的结构(create,drop,alter)

DML:数据操纵语言,用来对数据进行操作(insert,delete,update)

DCL:数据控制语言,主要负责权限管理和事务(grant,revoke,commit)

 存储引擎

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

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

这样查询自己的存储引擎:

show engines;

b51c41aefe2541c289f07b87e3cfd3e1.png

 比较常用的是InnoDB

创建数据库的时候,有两个编码集:

1.数据库编码集        --        数据库未来存储数据

2.数据库校验集        --        支持数据库,进行字段比较使用的编码,本质是一种读取数据库中的数据采用的编码格式

数据库无论对数据做任何操作,都必须保证操作和编码是编码一致的

这是查看自己当前的字符集:

show variables like 'character_set_database';

36b08fe692ce40098e17df27e10041e9.png 

这是查看数据库支持的字符集:

show charset

17421cbfa03949dda32e24638619ad5a.png

看看自己的校验集:

show variables like 'collation_database';

 b0c1dffb7b3b4702ae2c0ba13e1bfb58.png

 这是查看校验集:

show collation;

4bed6140a05a4dc68f60f822a4c64057.png

存在这个是因为

我是真的要红温了哦:

d954d06ecbaa4fafbbaf9c260aaa860e.png

我恨你啊 

98485635bace42feb6893da0007e1016.png

你创建数据和取出数据的编码方式肯定是要一致的,我们也可以指定方式创建数据库

create database db1 charset=utf8;

5f5e6edb4f7a41398acaf9a2364373ba.png 

这是创建一个使用utf8字符集的db2数据库

 你还可以指定校验规则:

create database db3 charset=utf8 collate utf8_general_ci;

 这是创建一个使用utf字符集,并带校对规则的db3数据库

可是这些编码方式对数据库有着怎样的影响么?

我们试试就知道勒:

0e7d60341a9344a58851378aaa8df57f.png

 这是建个表:

create table if not exists person (name varchar(20));

 722a7ba4073f4b4b8a6b2379140aa289.png

 这是看看详细的表内容:

 bae1eebfc71341888fea520c6935037e.png

 接下来插入一些数据:

d986ce8b73ad4eb7a53c8159091cef62.png

让瓦康康:

2d688edbb4e8401faad592589e868cf6.png 

这是条件的筛选:

select * from person where name='a';

be7394f3f9c94b74a4e819af4d75e933.png

可以看到它并没区分大小写

那么!我们可以用另一个看看双方区别:0867b75754c7416f8e2c69dd277d8b5b.png

 再次检索就会发现没了:

 f017d78cb9ec4770b4af3a89eec14f73.png

这就是区别哎

这是给这东西排序:

select * from person order by name;

 91b6c37c628d4664827916839c3785ac.png

但是切回数据库1捏?

8a74368b1d154415920f2c20b06a5d07.png

默认都是升序排列哦

校验集会影响比较结果

数据库删改查

数据库能创建也能删除捏

DROP DATABASE [IF EXISTS] db_name;

4b4bb09beb4b4c97ae4472a8f5b15eb4.png 

很简单捏,一条语句就搞定了

但是用上的机会很少吧

直接删库跑路吗(删除前备份下)

执行删除之后的结果是数据库内部看不到对应的数据库,对应的数据库文件夹被删除,级联删除,里面的数据表全部被删

tips:不要随意删除数据库

这是查(我貌似说过):

acd86229961c459188da00ac44dad27d.png

显示创建语句:

show create database hellworld;

e7ac4dbd0f26469db1d05cf5135d5050.png

这个/*!80016.../的意思是,当前MySQL版本如果>那个版本就执行这句话 

 怎样修改数据库捏?

这样捏:

alter database test2 charset=gbk collate gbk_chinese_ci;

368390eef0d34d17b4420ee9bdbc219c.png

 备份和恢复

要是要对数据库进行备份,就需要:

mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径

试试捏:

mysqldump -P3306 -uroot -p -B test1 > test1.sql

86fc765ef0b64be2989d16d5e03b788e.png

打开看看: 

237f541b90a2438787e12d19898fa44d.png

会发现被备份的不止数据,还有操作:

8ad0bd08b48f453c88cbea35f512c982.png

那备份要发挥备份的作用捏

我现在把原来的文件删掉捏

我试试能不能还原:

source 路径

7495c94fc6864cb39e1cfa1a51b61ea8.png

收手吧阿祖

成功了捏

就是那么的简单捏

 以上是库的操作和一些基础

我们再会咯~

 


http://www.ppmy.cn/news/1522707.html

相关文章

不小心删除了 Android 手机上的短信?3 步流程恢复误删除的短信以及图片、视频、联系人

不小心删除了 Android 手机上的短信?别担心,Android 版奇客数据恢复工具可以帮助您通过简单的 3 步流程恢复已删除的短信以及图片、视频、联系人等。 如何在 Android 上恢复已删除的短信 不小心删除了 Android 手机上的短信?Android 版奇客数…

Django缓存

【图书介绍】《Django 5企业级Web应用开发实战(视频教学版)》_django 5企业级web应用开发实战(视频教学版)-CSDN博客 《Django 5企业级Web应用开发实战(视频教学版)》(王金柱)【摘要 书评 试读】- 京东图书 (jd.com) Django 5框…

Web3社交新经济,与 SOEX 实现无缝交易的高级安全性

出于充分的理由,安全性是交易中至关重要的考虑因素。每个人都应该确保自己的资金在交易时是安全的。由于 SOEX 充当您与交易所的最佳连接,因此必须强调的是,该系统不会引发任何安全问题。 &a…

C语言程序设计(算法的概念及其表示)

一、算法的概念 一个程序应包括两个方面的内容: 对数据的描述:数据结构 对操作的描述:算法 著名计算机科学家沃思提出一个公式: 数据结构 +算法 =程序 完整的程序设计应该是: 数据结构+算法+程序设计方法+语言工具 广义地说,为解决一个问题而采取的方法和步骤…

帮招一名海康VM机器视觉工程师,工作地:苏州园区,行业:智能仓储自动化巨头,VM可以二次独立开发,岁数35岁以下,薪资18K+

工作职责: 能完成视觉系统的评估,合理的选择硬件配置,快速的完成软件功能开发和调试,并跟踪设备运转状况,保证设备稳定运行 能够清晰的理解客户某个站点的工艺需求,准确定位项目需求;能够根据需…

网络学习-eNSP配置VRRP

虚拟路由冗余协议(Virtual Router Redundancy Protocol,简称VRRP) VRRP广泛应用在边缘网络中,是一种路由冗余协议,它的设计目标是支持特定情况下IP数据流量失败转移不会引起混乱,允许主机使用单路由器,以及即使在实际…

HTTP 一、基础知识

一、概述 1、概述 HTTP(Hyper Text Transfer Protocol): 全称超文本传输协议,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP 是一种应用层协议,是基于 …

微知-BIOS中的XHCI模式是什么意思?(usb3.0的扩展控制器影响usb3.0速率等选项)

XHCI “eXtensible Host Controller Interface” “可扩展主机控制器接口”。 英特尔公司开发的一个USB主机控制器接口,主要面向USB 3.0,同时也支持USB 2.0及以下版本的设备。 是usb3.0的核心部分。 有他表示主机支持usb3.0 三种模式:Smart …

效率神器Listary,附激活码

相信很多人都在用Everything,但是我更钟情于Listary,双击Ctrl即可实现软件调用,支持命令、文件搜索、网络搜索,妥妥的增效神器, 软件使用 文件查找时,双击Ctrl调用搜索框后再双击Ctrl,可以打开…

全国大学生数学建模竞赛全国奖项评阅工作规范(2023年修订稿)

为了适应新的形势,更好地促进全国大学生数学建模竞赛活动的健康发展,进一步提高全国奖项评阅工作的质量和公正、公平性,根据《全国大学生数学建模竞赛章程》和竞赛活动的现状,特制订本规范。 一、评阅组的组成 第一条 全国评阅专家组(以下简称评阅组)由全国大学生数学建…

达梦数据库管理员常用SQL(一)

达梦数据库管理员常用SQL(一) 数据库基本信息数据库参数信息表空间信息日志文件信息进程和线程信息会话连接信息SQL执行信息等待事件信息事务和锁信息数据库基本信息 --查询数据库内部版本号 select id_code; select build_version from v$instance; select * from v$versi…

【游戏安全】CheatEngine基础使用——如何对不同类型的数值进行搜索?如何破解数值加密找到想修改的数值?

游戏安全 不同数值类型的搜索破解简单数值加密 不同数值类型的搜索 可以在游戏中看到很精确的物品数量,但是在CE中却什么都扫不到。 这是因为他的数值类型可能并不是四字节的,在游戏中这个数值的机制是一个慢慢增长的数值,所以他很有可能是…

使用 docker 部署 kvm 图形化管理工具 WebVirtMgr

文章目录 [toc]前提条件镜像构建启动 webvirtmgr创建其他 superuser配置 nginx 反向代理和域名访问绑定 kvm 宿主机local sockettcp 连接 虚拟机创建创建快照虚拟机克隆删除虚拟机 kvm 官方提供了以下这些图形化管理,license 这块也提示了是商业版(Comme…

利士策分享,如何规划多彩的大学生活?

利士策分享,学习规划多彩的大学生活 踏入大学,如同开启一场充满未知与可能的旅程。 为了让这段旅程不仅充满学术的熏陶,还洋溢着生活的多彩与人际的和谐,我们需要精心规划,积极行动。 一、多彩规划:点亮大学…

SpringBoot教程(十五) | SpringBoot集成RabbitMq(消息丢失、消息重复、消息顺序、消息顺序)

SpringBoot教程(十五) | SpringBoot集成RabbitMq(消息丢失、消息重复、消息顺序、消息顺序) RabbitMQ常见问题解决方案问题一:消息丢失的解决方案(1)生成者丢失消息丢失的情景解决方案1&#xf…

点赞收藏功能该如何设计?

这周给一个小伙伴做模拟面试,因为他在公司的项目是一个短视频电商的项目,模仿的是微博。看到他简历里写了做了短视频的收藏功能,于是让他讲讲具体的做法是什么样子的。 结果回答的并不理想,答案里有不少硬伤,今天松哥…

【Python】CSV文件的简单使用

1.读取CSV文件 import csvpath "123.csv"with open(path) as f: # 打开csv文件csvReader csv.reader(f) # 读文件建立Reader对象listReader list(csvReader) # 将数据转换成列表print(listReader)2.写入CSV文件 import csvpath "123.csv"with ope…

uniapp小程序下载缓存服务器上的图片

1. 使用uni.downloadFile,但是注意下载图片的地址里的域名,需要在微信公众平台里面的downloadFile合法域名进行配置。 export default function downloadAndCacheImage(imageUrl, name) {return new Promise((resolve, reject) > {console.log("imageUrl&q…

【消息中间件】Kafka从入门到精通

1 Kafka入门 概念 架构 1.1 概述 1.1.1 初始Kafka Kafka是一个由Scala和Java语言开发的,经典高吞吐量的分布式消息发布和订阅系统,也是大数据技术领域中用作数据交换的核心组件之一。以高吞吐,低延迟,高伸缩,高可靠…

DDD的实现流程

领域驱动设计(DDD)是一种面向领域的软件设计方法。它强调将业务知识和业务逻辑集成到软件设计中,从而提高软件系统的可维护性、可扩展性和可测试性。DDD 的实现流程主要包括以下几个步骤: 确定业务领域 首先,需要明确…