与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.xdnf.cn/news/1523040.html

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

相关文章

ElasticSearch-聚合操作

聚合的分类 aggsMetric Aggregation min, max, avg, sumstats, cardinality Bucket Aggregation terms ordertext -> fielddatarangehistogramtop_hits Pipeline Aggregation min_bucketstats_bucketpercentiles_bucketcumulative_sum 聚合的作用范围 Filter, Post Filter,…

AI智能电销机器人的优势是什么,有什么特点?

机器学习、大数据、深度学习、云计算等的发展和应用,机器人完成复杂专业任务的能力越来越强。智能化机器人时代的到来,进一步拓宽了服务机器人的应用场景和服务模式,人工智能机器人的问世,更使电销机器人进入到了电销行业。我们一…

如何禁用USB存储设备|禁用USB储存和连接手机的方法有哪些?深度解析,四招搞定!

在企业网络安全管理中,禁用USB存储设备和限制手机连接至关重要。这不仅可以防止数据泄露,还能阻止恶意软件通过外部设备入侵。 本文将为你推荐四种行之有效的方法,帮助你全面禁用USB存储设备和连接手机的功能,让企业数据安全更有…

【SpringCloud应用框架】GateWay网关

Spring Cloud Alibaba 之初识GateWay网关 文章目录 一、网关介绍二、网关对比三、GateWay基本概念:执行流程: 总结 一、网关介绍 在微服务架构中,一个系统会被拆分为多个微服务。如果没有网关存在,我们只能在客户端记录梅哥为服务…

echarts横向柱状图让Y轴的名字在柱状图上方展示

效果 代码 myEcharts(){// 基于准备好的dom,初始化echarts实例this.myChart echarts.init(this.$refs.rankingList);// 指定图表的配置项和数据var option { title: { }, tooltip: { trigger: axis, axisPointer: { type: shadow } }, legend: { …

中职院校智能物联网应用专业群建设方案

一、引言 随着信息技术的飞速发展,智能物联网(IoT)作为新一代信息技术的重要组成部分,正深刻改变着人们的生活方式、生产模式和社会形态。为积极响应国家“中国制造2025”和“智慧城市”等战略部署,培养适应未来社会需…

开源 AI 智能名片 S2B2C 商城小程序在社区团购中的应用与价值

摘要:本文探讨了开源 AI 智能名片 S2B2C 商城小程序在社区团购中的重要作用。社区团购的团长角色多元,包括小区店主、水站与快递站站长、宝妈等,其用户基础广泛。优秀团长的专业引导和良好服务至关重要,而开源 AI 智能名片 S2B2C …

YOLOv8改进实战 | 引入混合局部通道注意力模块MLCA(2023轻量级)

YOLOv8专栏导航:点击此处跳转 前言 YOLOv8 是由 YOLOv5 的发布者 Ultralytics 发布的最新版本的 YOLO。它可用于对象检测、分割、分类任务以及大型数据集的学习,并且可以在包括 CPU 和 GPU 在内的各种硬件上执行。 YOLOv8 是一种尖端的、最先进的 (SOTA) 模型,它建立在以前…

YoloV8 single channel train + Onnx trans

yolov8目前不支持单通道图片训练,需要修改后才能支持。本文将介绍如何修改yolov8代码,来训练单通道图的yolov8模型,以及使用onnx进行模型转换的简单实践。 1、修改代码 git diff ultralytics/utils/checks.py diff --git a/ultralytics/utils…

Spire.PDF for .NET【文档操作】演示:创建 PDF 文档

通过代码创建 PDF 文档具有多种优势。例如,您可以轻松合并动态内容,如用户输入、数据库记录或实时数据。基于代码的 PDF 生成允许更大的自定义和自动化,最大限度地减少创建高度定制文档时的手动干预。在本文中,您将学习如何使用Sp…

【陪诊系统-PC管理端】axios的二次封装

二次封装axios 引入axios创建axios实例,添加配置信息,这里主要设置基础url和请求超时时间给上述创建的实例添加拦截器,对请求、响应分别进行拦截 根据接口文档显示,当登录成功后,每次请求陪诊师、订单信息都需要携带t…

fastchat与autogen使用要点澄清

说明: 本文重点是想使用autogen构建智能体,并且想要通过加载本地模型来构建,以灵活使用。但是autogen重点是以API调用支持openai, mistral等大模型使用的,对于使用国内的一些模型不是那么友好方便。然后在查找方法的过程中&#x…

一篇常见第三方库之以及详细使用示例教程

作者:郭震 我们介绍了几个常用的 Python 第三方库,包括 NumPy、Pandas、Matplotlib 和 Requests.本篇将通过一些简单的示例来演示如何有效地使用这些库,以帮助小白理解它们的基本用法.通过这些案例,你可以直观感受到这些库在日常编程中的价值. NumPy NumPy 是一个强…

规控面试复盘

目录 前言 一、京东方 1、CPP和C的区别是什么? 2、讲一下的ROS的话题通信 二、Momenta(泊车部门实习面试) 1、MPC的预测时间步是多少? 2、MPC的代价函数考虑的是什么? 三、九识 1、智能指针有哪些优缺点? 优点: 缺点: 2、Protobuf的数据传输效率为什么更高…

【陪诊系统-PC管理端】动态路由

先说说这里为什么要使用动态路由? 因为前面的菜单管理功能模块中,可以创建或修改不同权限,当前登录账号可以绑定不同的权限,不同权限能访问的功能页面不同,所以使用动态路由来控制。 而登录成功后,服务器…

前端报文加密

前端加密功能 前端提供简单的AES对称加密算法,注意key 和后端网关配置相同,这里打包混淆后,相对安全。 (lun-ui\src\store\modules\user.js、base-gateway-dev.yml) 后端解密功能 使用hutool提供的工具类进行解密pub…

【无标题】docker-compose一键部署项目,haproxy容器代理多个web或java容器

# 创建脚本,可以在java环境中运行任何的jar包或者war包#!/bin/bash/usr/local/jdk/bin/java -jar /java/src/*.?ar 一、思路分析: (1)nginx 1、下载镜像,将本地的dist项目的目录挂载在容器的/usr/share/nginx/html/ …

连接型CRM+智能制造,助力医疗器械企业高质量发展

8月29日,由中国医疗器械行业协会智能制造与智慧监管分会主办,纷享销客参与协办的“数字化建设与智能制造助力医疗器械企业高质量发展”研讨会于苏州圆满落幕,国内知名医疗器械企业高层、行业专家及在医疗行业合规前沿的优秀专业人士齐聚一堂&…

【RabbitMQ】基本概念以及安装教程

1. 什么是MQ MQ( Message queue),从字面意思上看,本质是个队列,FIFO 先入先出,只不过队列中存放的内容是消息(message)而已.消息可以非常简单,比如只包含文本字符串,JSON等,也可以很复杂,比如内嵌对象.MQ多用于分布式系统之间进行通信 系统之间的调用通常有两种方式…

光盘安全隔离与信息单向导入系统-信刻

信刻从用户需求出发,为更多用户提供安全可靠的跨网数据单向导入/导出光盘摆渡系统解决方案,解决内外网数据交换的问题,确保数据交换过程的安全性。 公司所研发出的光盘安全隔离与信息单向导入系统依托软硬件相结合的技术,集策略摆…