数据库入门下篇(如何安装和登录MYSQL数据库)

news2024/12/22 19:18:46

在这篇文章里,笔者将着重讲解如何在win和Linux系统上安装自己的MySQL数据库软件,以及安装好数据库软件后如何启动和登录,忘了密码怎么办?如何创建一个数据库,如何在数据库中创建一个表等内容

目录

在windows系统上安装MySQL数据库

在Linux下安装MySQL

启动MySQL服务

尝试创建数据库

初识MySQL数据库运行结构


 

在windows系统上安装MySQL数据库

Windows直接在浏览器上搜索并选择相应版本的MySQL下载安装即可

如果你把MySQL数据库文件都放到了D盘,那么你可能无法直接在命令行中使用MySQL启动命令,你需要移动到D盘下MySQL文件下的bin目录下,才能够启动MySQL的服务

例如,我的MySQL文件就放到了D盘中

 

在命令行中,无法在C盘下直接启动,需要移动到D盘的MySQL文件的bin目录下才能启动

这样做很麻烦,因为命令行默认在C盘下,你又不想把MySQL安装到C盘下,那么每次启动MySQL都得移动到相关的路径下,有没有可以就放在D盘中,但又能在命令行中直接启动MySQL的方法呢?有的,这就需要我们修改系统环境变量,做法如下

1.找到你在D盘下存放的MySQL文件的bin目录的绝对路径

 D:\mysql-8.0.28-winx64\mysql-8.0.28-winx64\bin(这是我的bin目录的决定路径)

找到之后复制整个路径,然后在系统设置中搜索环境变量

 

2.打开,在高级栏中找到环境变量,点击,然后进入到环境变量设置页面

找到系统环境变量下的 Path

 3.找到Path后,点击编辑,再点击新建,把你复制的bin目录的绝对路径添加到里面,然后确定,回到桌面刷新

 

 4.再次打开命令行,输入登录命令,你就发现可以直接在C盘路径下启动MySQL文件了

 在Linux下安装MySQL

1.先检查自己的Linux系统是否有残余的曾经未卸载完全的MySQL文件

输入命令: ps ajx |grep mariadb      # 先检查是否有mariadb存在

如果有则输入命令   systemctl stop mariadb.service     # 停⽌mariadb服务

2.检查当前系统下是否有残留的MySQL安装包

输入命令    rpm -qa | grep mysql     #检查是否有残留安装包

如果有则输入命令  sudo yum remove mariadb   #卸载残留的MySQL安装包   

 3.去网址 http://repo.mysql.com/  获取mysql官⽅yum源

注意一定要根据自己的Linux系统选择适合自己的版本,选择合适的版本后将其下载到自己的本地磁盘中,如果你使用的是服务器,那么可以通过Xshell将下载好的文件上传到服务器上

我使用的是服务器,通过Xshell上传后,使用ls命令,能看到上传完成的MySQL的yum源

即:mysql57-community-release-el7-10.noarch.rpm

 4.将下载好的MySQLyum源安装

使用命令:rpm -Uvh mysql57-community-release-el7-10.noarch.rpm  #安装下载好的yum源
这个过程如果出错了,那么请尝试用sudo提权,或者直接用root用户安装

 5.正式开始安装MySQL服务

使用命令:sudo yum install -y mysql-community-server   #安装MySQL服务

安装过程中可能会出现这样的错误

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服务    systemctl start mysqld.service

登录进入MySQL,使用命令     mysql -u root -p

mysql:指的是启动mysql服务, -u:指的是用哪个用户登录  root:指的是用root这个用户登录,我们前期练习就用root用户,后面可以再改   -p:指的是提示输入登录密码

如果你是新用户,在输入时,你并不知道密码是什么,那我们直接通过修改配置文件的方式,跳过第一次密码登录,登录成功后,通过修改密码的命令,修改自己的密码,然后在配置文件中去掉跳过密码登录的命令(如果你在日后忘了登录密码也可以这样干)

在Linux下,通过命令:vim /etc/my.cnf       #打开mysql配置⽂件

然后在配置文件末尾加上命令 skip-grant-tables   之后保存退出

重新启动MySQL服务 systemctl restart mysqld

再次登录MySQL时,如果提示输入密码,直接回车跳过即可登录成功

以上是Linux环境下的操作,window的相关的操作有很多的文章讲解,这里就不再说了

尝试创建数据库

 如果你输入了密码,成功来到了如下的界面,那么恭喜你,你已经攻破了新手第一关

我们要使用数据库,在数据库上进行数据的增删查改,那么就得使用一种数据库语言来与数据库进行交流,主流的数据库语言就是SQL语言,基本上关系型数据库都采用SQL语句来作为与数据库沟通的语言。可能说到编程语言,大家心里就一紧,因为学习一门新的编程语言,还是相当耗费精力的

不过请放心,SQL语言严格来说并不是编程语言,而是一种查询语言,因为SQL不具有图灵完备,不像主流的编程语言那样有较强的编程能力,SQL的语法关键字就那几个,主要的目的就是用来对数据进行增删查改的

接下来,我们介绍几个新手常用的命令

show databases(注意在sql语句结束后,要在语句末尾加上;表示语句结束)

当我们刚使用命令mysql -u root -p 登录进入mysql后不知到该干些什么事情时,那么可以用这个命令来查看当前root用户存在哪些数据库,一个用户是可以创建多个数据库的

图中的my_test是笔者自己创建的,剩余的则是系统默认创建的一些数据库,我们暂时不用管系统默认创建的,先使用命令 create database name;   创建一个自己的数据库

注意name是你要创建的数据库的名字,下图是演示部分

那么blog_test这个数据库就被创建好了,接下来就是要使用这个数据库了,那么怎么使用呢?

使用命令 use name( name是数据库的名称)进入到指定的数据库中

当你看到 Database changed,那就说明已经进入到了数据库中

在图中,我们可以看到已经进入到了blog_test这个数据库中,那么 show tables; 这个命令是什么意思呢?还记得在入门上篇提到过吗?MySQL是关系型数据库,那么关系型数据库就是使用二维表来存储数据的,table字面意思就是表格,show tables就是查看当前这个数据库有哪些表, 由于我们没有在这个数据库中建立表格来存储数据,所以结果为空

接下来咱们尝试建立一些表格,并插入一些数据,在上篇文章中,我们提到过,要想存储某些实体的数据,那么首先的抽象出这些实体共有的属性信息。我们以学生为例,学生的属性信息有姓名,学号,性别,当然还有很多其他的属性信息,但是我们目前只需要用到这些

所以接下来我们就用姓名,学号,性别这些属性来创建一张学生二维表

使用命令

create table  students( 姓名 varchar(30), 

学号 varchar(15),

性别 varchar(10) );

这样就能够创建一张学生二维表了,接下来解释一下上面这串命令,students就是要创建的表的表名,姓名 varchar(30) 表示该表的第一个属性列为姓名,用30个char字符来存储

学号 varchar(15) 表示该表的第二个属性列为学号,用15个char字符来存储

性别 varchar(10) 表示该表的第三个属性列为性别,用10个char字符来存储

注意,这几个属性都在 () 里,表示是students这张表的属性,每个属性之间都要用 ',' 分隔开,关于存储数据类型,笔者会在后面文章专门介绍

做完这些,students这张表就正式建立好了

接下来,我们可以使用如下命令,看看表格的形式

desc name

show create table name

(name是指表名)

初识MySQL数据库运行结构

可能大家会好奇这样一件事,我们在输入登录命令时用的是mysql,而在启动mysql服务上怎么使用的是mysqld,这两个东西有什么区别吗?接下来笔者谈一谈什么是mysql,什么是mysqld

MySQL主要分为了mysql客户端,mysqld服务器端,如下图

 

mysql客户端就是直接给我们用户提供服务的,像我们前面在命令行中输入的SQL语句,就是在mysql客户端上操作的,然后客户端会将我们输入的SQL命令发送给mysql服务器端,也就是给mysqld。

那么mysqld会把我们输入的命令进行分析和优化操作,然后执行这些命令,在磁盘的数据库文件中更新执行后的结果,然后把执行结果返还给mysql客户端,让客户知道命令执行的如何

现在我们详谈在使用mysql -u root -p命令前为什么要启动mysqld

因为命令mysql -u root -p这个语句意思就是打开mysql客户端,并且与mysqld建立连接,如果你没有启动mysqld,那么就无法与数据库服务器建立连接,那么你的SQL命令就无法发送给服务器端进行处理,也就是无法使用数据库了

客户端和服务器端可能安装在两台计算机或一台计算机上。不管它们在不在相同的计算机上,为进行所有数据库交互,客户端软件都要与服务器端软件进行通信(这句话来自《mysql必知必会》)

我们目前使用的MySQL其实客户端软件和服务器端软件是安装在一台计算机上的,怎么证明呢?如果你足够细心,在安装MySQL时会看到下面这些信息

这些信息表明,客户端软件和服务器端软件都安装在你当前的计算机上

注意:目前我们使用的客户端软件提供的是命令行式的操作,但这并不意味着只能进行命令行操作,我们可以根据自己的需要选择图形化界面的客户端,以及未来在编程中,通过编程语言与mysqld建立连接,这些都是可以的。

mysql客户端只是一种方便与MySQL服务器进行交互的方式,习惯命令行界面的就用命令行式的(默认下载的mysql客户端都提供命令行操作),习惯图形化界面的就用图形化界面的客户端,想程序与数据库直接建立连接的,就通过编程语言与mysqld建立连接

下面这张图,是MYSQL的一个结构图

简单提一下存储引擎(简单了解)

存储引擎:数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。
MySQL的核心就是插件式存储引擎,支持多种存储引擎

 

下面这张图能够很好的帮我们前面的内容串联起来,Client就是客户端,MYSQL就是服务器端,DB就是我们在上面演示建立的数据库,数据库中存放着我们创建的表,我们在客户端写下create database blog_test 这个sql语句,那么客户端会将这个语句发送给服务器端处理,服务器接收到指令后,在存储区域更新这个操作,创建了一个DB,名为blog_test,同时将创建结果返回给客户端

其实创建一个数据库就是创建一个目录,而创建一张表就是创建一个文件,严格来说,真正在磁盘中存储的数据才是数据库,只不过我们日常口语叫惯了,把数据库这个概念叫的更加宽泛了

 

到此,我们算是把MySQL基础原理模糊的讲了一遍,其中很多概念可能我们一时无法理解,不用着急,这需要我们不断去学习完善,。还有很多SQL语法命令等着我们去掌握,这些是作为一个使用者必须要掌握的。像存储引擎,SQL语句的解析和优化等这些内容就没那么重要了,如果不深入数据库这个方向的发展,那么这些内容知道有就行了,用到的话,再去学习。程序的世界真的是太深太广了,想学完所有的东西那是不可能的,所以IT行业的人员要有持续学习的能力,暂时用不到的知识,不必追求一定掌握,但心中要留个痕迹,这样未来用到了才知道要学什么,从哪里学

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

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

相关文章

宠物行业 | 活动落地页设计指南基础版

中国是全球第二大宠物市场,同时也是增长最快的市场之一。随着养宠人群的扩大,人宠亲情关系的加深,客群消费意愿与消费水平的提高,中国宠物行业正处于消费与认知的全面升级期。 调研显示,2022年我国宠物产业规模达4936亿…

管理类联考——英语二——技巧篇——写作——图表作文——经典方法论

考研英语(二)的B节写作主要考查的是图表作文。笔者根据考研英源(二)大纲要求以及议论文经典的三段式写法(首段指出问题、中间段分析问题、尾段解决问题),研发出一套图表作文的经典写法。下面我们来看图表作文经典的三段式写法的基本大招。 从上图可以看出&#xf…

【SpringCloud入门】-- Nacos快速入门之搭建服务与注册中心

目录 前言: 1.Nacos的下载与安装 2. 去MySQL建立一个名为nacos的数据库 3.介绍配置文件,conf目录下的 application.properties 4.nacos启动 5. nacos作为注册中心的作用 6.建立一个项目,实现向命名空间注册 前言: 上文我们已…

使用influxQL 查询influxDB 2.0以上版本

使用grafana 9.0 连接influxdb 2.0 时候,只能用FLux语言连接,就没有SQL编辑面板,通过研究搞定了,先看效果。 influxQL 格式连接 influxdb2.0 无法连接,总数报错 bad request. 那就用FLux格式连接,连接成功后,查询的地方没有可视化面板,只有编写脚本的地方,很不方便…

Android11 DNS解析流程

Android11 DNS解析 1. DNS解析概念 ​ DNS的全称是domain name system,即域名系统。主要目的是将域名解析为IP地址,域名是方便用户记忆,但网络传输中源目地址使用IP地址来进行标识的,所以Android中的网络应用程序在发起http请求…

MySQL redo log

redo log介绍 重做日志,用于记录事务操作的变化,确保事务的持久性。redo log是在事务开始后(begin; 之后)就开始记录,不管事务是否提交都会记录下来,在异常发生时(如数据持久化过程中掉电&…

如何在 Vue3 组件中使用 TS 类型(必看)

一、为 props 标注类型 使用 <script setup> 方式一&#xff1a;当使用 <script setup> 时&#xff0c;defineProps() 宏函数支持从它的参数中推导类型&#xff1a; const props defineProps({treeTableProps: {type: Array,default: null,required: false},ms…

华为OD机试真题 JavaScript 实现【玩牌高手】【2023 B卷 100分】,附详细解题思路

一、题目描述 给定一个长度为n的整型数组&#xff0c;表示一个选手在n轮内可选择的牌面分数。 选手基于规则选牌。 请计算所有轮结束后其可以获得的最高总分数。 选择规则如下&#xff1a; 在每轮里选手可以选择获取该轮牌面&#xff0c;则其总分数加上该轮牌面分数&#…

✎Qt-doc——尺寸调整策略(QSizePolicy)

目录 QSizePolicy类详述成员类型文档 QSizePolicy类详述 小部件的尺寸策略是其愿意以各种方式调整大小的表达方式&#xff0c;并影响布局引擎对小部件的处理方式。每个小部件返回一个描述其在布局时首选的水平和垂直调整策略的QSizePolicy。您可以通过更改其QWidget::sizePoli…

SpringCloud:分布式事务Seata事务模式

Seata会有 4 种分布式事务解决方案&#xff0c;分别是AT模式、TCC模式、Saga模式和XA模式。 1.AT 模式 2019 年 1 月份&#xff0c;Seata开源了AT模式。AT模式是一种无侵入的分布式事务解决方案。在AT模式下&#xff0c;用户只需关注自己的业务SQL&#xff0c;用户的 业务SQL …

2023-06-16 Android app 使用opencv 调用jni在图片上添加文字,对图片进行模糊处理,源码实例学习。

一、要理解还是得自己看代码 1.1 完整的测试代码路径如下 https://download.csdn.net/download/qq_37858386/87916944 1.2 代码架构 1.3 app 运行效果 二、android studio 添加 opencv module可以参考下面的文章&#xff0c;比较详细。 Android OpenCV 入门教程笔记&#x…

华为OD机试真题 JavaScript 实现【计算最大乘积】【2022Q4 100分】,附详细解题思路

一、题目描述 给定一个元素类型为小写字符串的数组&#xff0c;请计算两个没有相同字符的元素长度乘积的最大值&#xff0c; 如果没有符合条件的两个元素&#xff0c;返回0。 二、输入描述 输入为一个半角逗号分隔的小写字符串的数组&#xff0c;2 < 数组长度<100&am…

Linux之RPM管理工具

目录 Linux之RPM管理工具 定义 作用 RPM软件包 RPM软件包的经典命名格式 RPM安装 语法格式 参数及作用 有关rpm包相关网站 RPM查询功能 语法格式 参数及作用 案例 rpm软件包安装 软件包升级 rpm软件包卸载 rpm卸载 强制卸载 rpm包签名验证 用途 查看签名 …

程序员如何转型成为个人开发者

作者&#xff1a;哈桑c&#xff08;CSDN平台&#xff09; 文章目录 1、什么是个人开发者&#xff1f;2、个人开发者如何赚钱&#xff1f;3、程序员如何转型成为个人开发者&#xff1f;4、成为个人开发者需要学习哪些技能&#xff1f;结语 1、什么是个人开发者&#xff1f; 个人…

redhat安装oracle11g单实例软件建库

1、打开xmanager-passive 2、oracle 用户登录&#xff0c;开始安装 [rootrhel64 database]# su - oracle [oraclerhel64 ~]$ evn |grep oracle -bash: evn: command not found [oraclerhel64 ~]$ evn | grep oracle -bash: evn: command not found [oraclerhel64 ~]$ env | g…

首次使用云服务器搭建网站(三)

上回说到&#xff0c;我们已经搞定了服务器问题和网站模板问题&#xff0c;接下来只需要上传模板即可。 一、上传网站代码 1、打开宝塔面板&#xff0c; 点开文件、这里就是我们服务器的所有文件了。 2、依次点击WWW文件夹、wwwroot文件夹、域名文件夹&#xff0c;进入…

Python之私有属性、私有方法、装饰器及属性和类的命名规则

一、私有属性和私有方法(实现封装) Python对于类的成员没有严格的访问控制限制&#xff0c;这与其他面向对象语言有区别。关于私有属性和私有方法&#xff0c;有如下要点&#xff1a; 通常我们约定&#xff0c;两个下划线开头的属性是私有的(private)。其他为公共的(public)。…

Centos环境 使用docker 部署MySQL 8.X详细版本

文章目录 安装docker配置docker 阿里镜像加速阿里云容器镜像服务ACR配置镜像源 安装部署MySQL拉取MySQL镜像创建挂载文件测试部署部署MySQL进入容器将它的mysql配置同步给宿主机删除test1测试容器 正式部署MySQL查看正式部署的容器状态配置远程连接字符集以及关闭跳过密码验证等…

Aop详解

AOP简介 AOP是一种编程思想&#xff0c;就如同面向对象这种编程思想一样&#xff0c;是一种编程范式&#xff0c;用来指导开发者如何组织程序更好的运行 AOP&#xff08;面向切面编程&#xff09; 作用&#xff1a;在不改变原代码的前提下&#xff0c;为其增加功能。 连接点…

基于 Yeoman 脚手架技术构建前端项目的实践

NodeJ、CLI 基于 Yeoman 脚手架技术构建前端项目的实践 作者&#xff1a;李俊才 &#xff08;jcLee95&#xff09;&#xff1a;https://blog.csdn.net/qq_28550263 邮箱 &#xff1a;291148484163.com 本文地址&#xff1a;https://blog.csdn.net/qq_28550263/article/details…