北京注册公司核名网站,重庆刮刮卡制作,网站建设发展趋势,买房网站怎么做总言 主要内容#xff1a;MySQL在Centos 7下的安装#xff08;主要学习相关指令语句#xff0c;理解安装操作是在做什么#xff09;、对MySQL数据库有一个基础认识。 文章目录 总言0、MySQL的安装与卸载#xff08;Centos 7#xff09;0.1、MySQL的卸载0.1.1、卸载不必要…总言 主要内容MySQL在Centos 7下的安装主要学习相关指令语句理解安装操作是在做什么、对MySQL数据库有一个基础认识。 文章目录 总言0、MySQL的安装与卸载Centos 70.1、MySQL的卸载0.1.1、卸载不必要的环境非必要步骤0.1.2、检查系统安装包、卸载系统安装包 0.2、MySQL的安装0.2.1、获取并安装mysql官方yum源0.2.2、一键安装mysql0.1.5、启动与登录0.1.6、配置说明 1、MySQL数据库基础介绍1.1 什么是数据库1.1.1、介绍1.1.2、主流数据库 1.2、基础认知1.2.1、如何连接服务器登录与退出1.2.2、理解服务器、数据库、表的关系1.2.2.1、具象化说明1.2.2.2、理解三者关系 1.2.3、MySQL架构1.2.4、SQL分类1.2.5、认识存储引擎 0、MySQL的安装与卸载Centos 7 说明Linux中安装与卸载应用级软件用户全部切换成为root⼀旦安装普通用户就能使用。这也是为什么普通用户要安装时需要执行sudo语句。
0.1、MySQL的卸载
0.1.1、卸载不必要的环境非必要步骤 1、检查当前Linux中是否存在MySQL 云服务器上默认可能存在MySQL可使用以下语句检查。
[rootVM-4-3-centos mysql]# whoami
root
[rootVM-4-3-centos mysql]# ps axj | grep mysqld
19561 21517 21516 19376 pts/0 21516 S 0 0:00 grep --colorauto mysqld
[rootVM-4-3-centos mysql]# ps axj | grep mariadb
19561 21528 21527 19376 pts/0 21527 S 0 0:00 grep --colorauto mariadb
[rootVM-4-3-centos mysql]# which mysql
/usr/bin/which: no mysql in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
[rootVM-4-3-centos mysql]# 说明 1、mariadb是mysql的开源分支。 2、根据上述显示可知我们当前使用的机子中没有内置MySQL可直接跳转到后续的安装环节。 3、若存在默认mysql可以直接使用但需要查看版本是否匹配mysql --version。ps默认的mysql存在配置齐全的可能这里主要是学习使用方法才有此操作。 2、终止MySQL进程运行 准备卸载MySQL首先要检查其是否在运行若运行要先停止运行。类似于Windows上卸载程序首先要终止程序运行。 使用指令systemctl stop XXX(跟进程名称这里是查询到的mysqld或mariadb)。 之后可使用grep指令查询进程是否停止grep mysqld、grep mariadb。 0.1.2、检查系统安装包、卸载系统安装包 1、检查系统安装包 系统安装包以.rpm格式为主可使用rpm -qa查询默认显示当前系统中所有安装包。 这里我们使用管道和grep过滤筛选
rpm -qa | grep mariadb
rpm -qa | grep mysql演示当前主机查询到的安装包PS根据自己情况而定这里只是演示
[rootVM-4-3-centos mysql]# rpm -qa | grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64或者
[rootVM-4-3-centos mysql]# rpm -qa | grep mysql
mysql-community-server-5.7.44-1.el7.x86_64
mysql-community-client-5.7.44-1.el7.x86_64
mysql57-community-release-el7-11.noarch
mysql-community-libs-5.7.44-1.el7.x86_64
mysql-community-common-5.7.44-1.el7.x86_64
[rootVM-4-3-centos mysql]# 2、卸载系统安装包 1、根据查询到的安装包可以使用yum指令卸载yum remove XXX 2、当安装包有很多时这样一个一个卸载比较麻烦这时我们可以做如下处理(卸载时有命令行询问无法批量化卸载因此加-y选项表示不询问是/否直接卸载。)
rpm -qa | grep mysql | xargs yum remove -y 相关卸载演示1 相关卸载演示2
0.2、MySQL的安装
0.2.1、获取并安装mysql官方yum源 yum源官网链接http://repo.mysql.com/若链接失效则自行查询 1、为什么需要找yum源 问题说明 我们的需求为一键安装MySQL即简单输入几条指令就可以达到安装效果因此使用yum来完成该操作例如之前学习的yum安装man手册、gcc/g等等。但需要知道这些软件能够安装实则是当前Linux中有对应的yum源。 因此要解决上述一键安装mysql的问题首先要获取到它的yum源。 演示 以下为当前yum源中存储的仓库地址待我们安装好yum源后再来对比看看有何变化。这里显示的yum源也是根据自己情况而定。
ls /etc/yum.repos.d -lPS此处对于yum若有疑惑可回顾Linux || 基本工具介绍 2、需要哪一个mysql的yum源 step1安装的mysql的yum源要和自己主机对应。因此需要 先确定自己Linux版本号 。
cat /etc/redhat-releasesetp2在官网中查询匹配的版本。单击右键显示源代码这样可以方便查看版本号。 需要找谁根据上一步查询到的Linux版本号安装。 下载上传到Linux中。 step3安装mysql的yum源 使用rpm -ivh指令相当于Windows中我们下载好软件包后双击安装软件包。
rpm -ivh mysql57-community-release-el7.rpm3、安装前后是在做什么 4、收尾工作检查 可以查看该yum源实则里面存储者各种版本链接 可以检测一下当前yum源是否正常
yum list | grep mysql0.2.2、一键安装mysql 1、安装mysql 可使用yum安装mysql虽然只是一个指令但会将MySQL需要的各种包和组件都安装下来。
yum install -y mysql-community-server关于安装遇到秘钥过期的问题
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-20222、检查是否安装成功 mysql数据库的客户端。 mysqld数据库的服务端。 /etc/my.cnf数据库的配置文件。
0.1.5、启动与登录 1、初步认识mysql是什么 如下我们先将MySQL启动起来。
systemctl start mysqld那么mysql这种数据库究竟是什么 如下图可知①站在网络角度mysql是一个基于TCP协议的网络服务根据之前所学TCP属于应用层协议和我们之前写的网络版本计算器、各种tcpserver一样有自己的一套协议也需要序列化反序列化等等处理。②站在OS角度mysql实则是一个用户层进程。 2、MySQL登录问题 说明不同版本mysql登录方式可能存在一定差异。 方式一存在一个临时的root密码使⽤临时密码登录。
grep temporary password /var/log/mysqld.log其它说明 1、可以打开查看一下这个log文件里有什么vim /var/log/mysqld.log。 2、在这种方式下首次使用mysql会提出报错要求为修改默认密码。
ERROR 1820 (HY000):
You must reset your password using ALTER USER statement before executing this statement.此时只需要修改初始登录密码即可也可以学方式三不设密码有需要时再设置 方式二root默认没有密码可直接登录。
mysql -uroot -p其它说明这里的root并非Linux中的root用户而是mysql仿照Linux弄出了一个自身的root用户。 方式三设置mysql配置⽂件将mysql设为免密登录。需要注意修改配置文件后需要重启服务端。 说明 在[mysqld]最后⼀栏配置加⼊: skip-grant-tables 选项保存退出。对于不知道是什么的内容就放在配置⽂件最后。 重启让新的配置文件生效以下两条指令都可以这里我们修改的是[mysqld]那么重启的是服务端。。
systemctl start mysqld
systemctl restart mysqld0.1.6、配置说明 1、两个核心的配置 这里暂时只做简单的配置处理若有其余需要自行探索。 1、配置服务端编码格式character-set-serverutf8 2、配置存储引擎default-storage-engineinnodb 2、设置开机启动可以不设
#开启开机⾃启动
systemctl enable mysqld
systemctl daemon-reload3、简单介绍datadir/var/lib/mysql 根据上述在配置文件中可查看到mysql存储数据的位置这里可以简单查看一二根据自己情况而定需要知道的是未来若卸载了mysql数据库这里存储的数据会保留下来。 1、MySQL数据库基础介绍 1.1 什么是数据库
1.1.1、介绍 1、是什么 MySQL是一个开源的关系型数据库管理系统常用于Web应用程序的后端数据存储。
数据库数据管理的产物。数据管理是数据库的核心任务内容包括对数据的分类、组织、编码、储存、检索和维护。
数据库管理系统是利用数据库系统对数据进行管理的软件系统。通常口头上说所的MySQL数据库是/var/lib/mysql中的这堆数据文件也可以是mysql、mysqld及其数据的集合。 2、为什么需要数据库 要明白这个问题 则要来理解文件VS数据库。 ps虽然OS也会对文件进行管理但它们管理的侧重点不同。 数据存储的介质磁盘、内存。
1.1.2、主流数据库 SQL Sever 微软的产品Net程序员的最爱中大型项目。 Oracle 甲骨文产品适合大型项目复杂的业务逻辑并发一般来说不如MySQL。 MySQL世界上最受欢迎的数据库属于甲骨文并发性好不适合做复杂的业务。主要用在电商SNS论坛。对简单的SQL处理效果好。 PostgreSQL 加州大学伯克利分校计算机系开发的关系型数据库不管是私用商用还是学术研究使用可以免费使用修改和分发。 SQLite 是一款轻型的数据库是遵守ACID的关系型数据库管理系统它包含在一个相对小的C库中。它的设计目标是嵌入式的而且目前已经在很多嵌入式产品中使用了它它占用资源非常的低在嵌入式设备中可能只需要几百K的内存就够了。 H2 是一个用Java开发的嵌入式数据库它本身只是一个类库可以直接嵌入到应用项目中。 1.2、基础认知
1.2.1、如何连接服务器登录与退出 连接指令如下
mysql -h 127.0.0.1 -P 3306 -u root -p
mysql -h [hostname] -P [port] -u [username] -p说明 1、-h 和 -P 选项MySQL 服务器不在本地或使用的不是默认端口3306则可以使用 这两个选项来指定主机和端口 从这里也可以看出mysql是一套网络服务 2、mysql 默认登录使用的主机为本地localhost(127.0.0.1)默认端口为3306 。 3、端口号是可以通过配置文件修改的。在公司内部是否需要改动看公司我们自己写时用默认的3306 MySQL退出指令如下
mysql exit;
mysql quit;
mysql \q;1.2.2、理解服务器、数据库、表的关系 1、windows中默认的服务管理器 services.msc执行 winr 输入 services.msc 可打开服务管理器。通过右键或图标进行服务管理 启动停止暂停重启动等。 1.2.2.1、具象化说明 1、创建一个数据库本质是在Linux上是做什么 如下图所示可知在mysql中建立一个数据库create database XXX本质在linux下是建立了一个目录XXX! 这里创建出的实则是空文件db.opt之后学习库的操作时再解释。 2、创建一个表本质是在Linux上是做什么 如下图所示在mysql中建立一个表本质是在Linux上创建对应名称的文件。 3、扩展简单演示表结构 回答存在缓存延迟。后续讲解
1.2.2.2、理解三者关系 1、基本介绍 所谓安装数据库服务器只是在机器上安装了一个数据库管理系统程序这个管理程序可以管理多个数据库一般开发人员会针对每一个应用创建一个数据库。 为保存应用中实体的数据一般会在数据库中创建多个表以保存程序中实体的数据。 数据库服务器、数据库和表的关系如下 2、简单理解mysql的逻辑结构和物理结构 逻辑存储结构 mysql的逻辑存储结构遵循了关系型数据库的基本概念即将数据组织为数据库database、表table、行row、列column等层次。除了上述基本概念外mysql还支持以下逻辑存储结构索引index、视图view、函数function、存储过程stored procedure。 物理存储结构 mysql的物理存储结构是指mysql如何将逻辑存储结构映射到磁盘上的文件系统。mysql支持多种存储引擎storage engine每种存储引擎都有自己独特的物理存储结构和特点。
1.2.3、MySQL架构 客户端连接这是应用程序与MySQL数据库之间的交互层客户端可以通过连接池从连接池中获取数据库连接然后将SQL查询发送给服务器端。
MySQL连接器 是MySQL数据库的一个关键组件负责处理客户端与服务器之间的连接和通信。MySQL提供了多种连接器适用于不同的编程语言和开发平台例如C、Java、PHP等语言来连接MySQL数据库。连接池 管理、缓冲用户的连接接收客户端的连接线程处理等需要缓存的需求。例如当客户端发送一个请求连接会从连接池中获取一个连接进行使用。 核心服务层 第二层架构主要完成大多数的核心服务功能如SQL接口DML、DDL语句的封装SQL的分析和优化部分内置函数的执行等等。
管理服务和工具 系统的管理和控制工具例如数据库备份和恢复、数据库安全管理如用户及权限管理、数据库复制管理、数据库集群管理、数据库分区/分库/分表管理、数据库元数据管理等。SQL接口 SQL Interface接收用户的SQL命令并进行处理得到用户所需要的结果。可处理DDL、DML等。查询解析器 验证和解析SQL命令例如过滤条件、语法结构等。查询优化器 在执行查询之前使用默认的一套优化机制对sql语句进行优化。缓存 包括全局和弓|擎特定的缓存提高查询的效率。如果缓存当中有想查询的数据则查询语句就可以从缓存中取数据无须再通过解析和执行。该缓存机制由一系列小缓存组成如表缓存、记录缓存、key缓存、权限缓存等。 存储引擎层 通常叫做StorEngine Layer也就是底层数据存取操作实现部分由多种存储引擎共同组成。
插件式存储引擎(可插拔式存储引擎) 管理和操作数据的一种机制包括存储数据、如何更新、查询数据等。ps通过系统调用接口存储引擎控制的是数据怎么组织怎么存、怎么取但最终数据存储还是要落到磁盘上。) 第四层系统文件层 / 存储层
文件系统配置文件、数据文件、日志文件、错误文件、二进制文件等等的保存.主要将数据存储在文件系统之上并完成与存储引擎的交互存储具体的数据。 扩展链接 1.2.4、SQL分类 DDLdata definition language数据定义语言用来维护存储数据的结构。数据库和表结构的属性操作 代表指令: create, drop, alter DMLdata manipulation language数据操纵语言用来对数据进行操作。数据库和表结构的数据内容操作 代表指令 insertdeleteupdate DML中又单独分了一个DQL数据查询语言代表指令 select DCLData Control Language数据控制语言主要负责权限管理和事务整个MySQL的系统安全和账户管理工作主动和被动下都是比较可靠的 代表指令 grantrevokecommit
1.2.5、认识存储引擎 1、是什么 存储引擎 数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。MySQL的核心就是插件式存储引擎支持多种存储引擎。 在MySQL中的存储引擎有很多种可以通过SHOW ENGINES语句来查看 2、扩展InnoDB存储引擎comment介绍 ① InnoDB是事务型数据库的首选引擎支持事务ACID简单地说就是支持事务完整性、一致性。 ② InnoDB支持行级锁。行级锁可以在最大程度上支持并发以及类似Oracle的一致性读、多用户并发。 ③ InnoDB是为处理巨大数据量的最大性能设计InnoDB存储引擎完全与MySQL服务器整合InnoDB存储引擎为在主内存中缓存数据和索引而维持它自己的缓冲池。 ④ InnoDB支持外键完整性约束存储表中的数据时每张表的存储都按照主键顺序存放如果没有显式在表定义时指定主键InnoDB会为每一行生成一个6字节的ROWID并以此作为主键。 ⑤ InnoDB支持崩溃数据自修复。InnoDB存储引擎中就是依靠redolog来保证的。当数据库异常崩溃后数据库重新启动时会根据redolog进行数据恢复保证数据库恢复到崩溃前的状态。