CentOS Linux MySQL 数据库 的安装方法

news2024/11/27 14:53:24

一、简单了解MySQL数据库的体系结构

(一)MySQL架构图

 (二)MySQL体系结构:连接层、服务层、引擎层、存储层

1、连接层--主要职责:身份认证,连接管理,获取权限信息
(1)客户端访问MySQL第一件事就是通过三次握手与服务端建立TCP连接。服务端会有TCP线程池,当收到连接请求后会分配一个线程专门对接这个客户端。
(2)连接成功后,MySQL服务器对TCP中客户端传输过来的账号密码进行身份认证、权限获取。
(3)若是用户名/密码不对,服务端会收到Access denied for user 错误,客户端则执行结束;

2、服务层--服务层主要完成大多数的核心服务功能:
(1)SQL接口(Interface):接收SQL指令,返回查询结果;
(2)解析器(Parser):解析输入的SQL语句,将SQL语句解析成MySQL服务器能认识的语言;
(3)优化器(Optimizer):优化SQL,MySQL会选择自己认为最优的方式(不是程序员认为最优的方式)执行解析后的SQL语句;
(4)缓存(Caches):缓存执行的SQL的查询等结果,不同客户端之间可共享查询缓存。(缓存包括:表缓存、记录缓存、key缓存、权限缓存等)

3、引擎层面
存储引擎真正的负责了MySQL中数据的存储和提取,服务器通过AP和存储引擎进行通信。不同的存储引擎具有不同的功能,这样我们可以根据自己的需要选择合适的存储引擎。

4、储存层
主要是将数据储存在文件系统之上,并完成与储存引擎的交互,所有的数据、数据库、表的定义,表的内容、索引,都是存储在文件系统上,以文件的方式存在并完成与存储引擎的交互。

 

二、MySQL数据库的安装方法

(一)RPM包安装--测试开发环境

1 离线安装

1.1 下载RPM安装包,上传至服务器

[root@node1 ~]# ll mysql*
-rw-r--r-- 1 root root 584652800 Jul  5 11:12 mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar

1.2 解压RPM软件包

#创建存放解压文件的目录
[root@node01 ~]# mkdir mysql

#解压文件
[root@node01 ~]# tar xf mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar -C mysql

1.3 查看解压过后的软件包内容

[root@node01 ~]# cd mysql/

[root@node01 mysql]# ll
total 570956
-rw-r--r-- 1 7155 31415  25079412 Mar 20  2017 mysql-community-client-5.7.18-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415    277784 Mar 20  2017 mysql-community-common-5.7.18-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415   3777808 Mar 20  2017 mysql-community-devel-5.7.18-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415  45493312 Mar 20  2017 mysql-community-embedded-5.7.18-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415  23924496 Mar 20  2017 mysql-community-embedded-compat-5.7.18-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 126060264 Mar 20  2017 mysql-community-embedded-devel-5.7.18-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415   2237888 Mar 20  2017 mysql-community-libs-5.7.18-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415   2113196 Mar 20  2017 mysql-community-libs-compat-5.7.18-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415  54661812 Mar 20  2017 mysql-community-minimal-debuginfo-5.7.18-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 169622200 Mar 20  2017 mysql-community-server-5.7.18-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415  14501488 Mar 20  2017 mysql-community-server-minimal-5.7.18-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 116887988 Mar 20  2017 mysql-community-test-5.7.18-1.el7.x86_64.rpm
#注意
mysql-community-client		客户端
mysql-community-devel		开发库
mysql-community-common		服务端和客户端的公共文件
mysql-community-embedded	嵌入式
mysql-community-server		服务端
mysql-community-test		测试组件
mysql-community-libs		共享库
mysql-community-libs-compat	MySQL之前版本的共享兼容库

1.4 安装解压过后的RPM软件包

#由于本机的mariadb-libs与需要安装的软件包冲突,所以先卸载原有的包再重新安装
[root@node01 mysql]# rpm -e mariadb-libs postfix
#安装MySQL软件包
[root@node01 mysql]# yum localinstall -y mysql-community-server-5.7.18-1.el7.x86_64.rpm mysql-community-client-5.7.18-1.el7.x86_64.rpm mysql-community-common-5.7.18-1.el7.x86_64.rpm mysql-community-libs-5.7.18-1.el7.x86_64.rpm

2 在线安装

2.1 配置一个YUM仓库(源)

#Adding the MySQL Yum Repository
[root@node01 mysql]# yum install http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

#手动配置yum源
[root@node01 mysql]# vim /etc/yum.repos.d/mysql.repo
[mysql]
name=mysql5.7
baseurl=http://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-5.7-community-el7-x86_64/
gpgcheck=0

2.2 安装MySQL数据库

[root@node01 mysql]# yum install -y mysql-community-server

2.3 开机自启动MySQL服务

[root@node01 mysql]# systemctl enable --now mysqld

2.4 查询临时登录密码

[root@node01 mysql]# awk '/temporary password/ {print $NF}' /var/log/mysqld.log

#下面是返回的临时密码
Z+!qPI;=s0Zf

2.5 登录MySQL数据库

[root@node01 mysql]# mysql -u root -p
Enter password:Z+!qPI;=s0Zf

2.6 修改用户密码

mysql> alter user root@localhost identified by 'CentOS@123';
Query OK, 0 rows affected (0.00 sec)

(二)通用二进制方式--生产环境

1.1 下载RPM安装包,上传至服务器

[root@node02 ~]# ll
total 656960
-rw-r--r--  1 root root 672716800 Jul  5 15:42 mysql-5.7.14-linux-glibc2.5-x86_64.tar
-rw-------. 1 root root      1675 Jul  5 14:43 anaconda-ks.cfg
drwxr-xr-x. 2 root root         6 Jul  5 14:45 Desktop
drwxr-xr-x. 2 root root         6 Jul  5 14:45 Documents
drwxr-xr-x. 2 root root         6 Jul  5 14:45 Downloads
-rw-r--r--. 1 root root      1723 Jul  5 14:45 initial-setup-ks.cfg
drwxr-xr-x. 2 root root         6 Jul  5 14:45 Music
drwxr-xr-x. 2 root root         6 Jul  5 14:45 Pictures
drwxr-xr-x. 2 root root         6 Jul  5 14:45 Public
drwxr-xr-x. 2 root root         6 Jul  5 14:45 Templates
drwxr-xr-x. 2 root root         6 Jul  5 14:45 Videos

1.2 创建用户及用户组

[root@node02 ~]# groupadd -r mysql

[root@node02 ~]# useradd mysql -r -g mysql -c "MySQL Server" -s /bin/false

1.3 解压软件包

#由于软件包经过了2次压缩,所以这里解压两次
[root@node02 ~]#tar xf mysql-5.7.14-linux-glibc2.5-x86_64.tar -C /usr/local
[root@node02 ~]#tar xf /usr/local/mysql-5.7.14-linux-glibc2.5-x86_64.tar.gz -C /usr/local/

1.4 创建软链接

[root@node02 ~]# ln -sv /usr/local/mysql-5.7.14-linux-glibc2.5-x86_64 /usr/local/mysql
‘/usr/local/mysql’ -> ‘/usr/local/mysql-5.7.14-linux-glibc2.5-x86_64’

1.5 初始化MySQL服务

[root@node02 ~]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data

1.6 创建配置文件

[root@node02 ~]# cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

[root@node02 ~]# vim /etc/my.cnf
#在 [mysqld] 后添加以下内容
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data

1.7 创建服务脚本

#拷贝服务脚本
[root@node02 ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
			
#添加系统服务,并设置开机自启动
[root@node02 ~]# chkconfig --add mysqld
[root@node02 ~]# chkconfig mysqld on

1.8 启动MySQL服务器

#启动MySQL服务
[root@node02 ~]# /usr/local/mysql/bin/mysqld_safe --user=mysql &

#配置环境变量
[root@node02 ~]# vim /etc/profile.d/mysql.sh
export PATH=/usr/local/mysql/bin:$PATH
			
#加载使其生效。
[root@node02 ~]# systemctl restart mysqld

(三)容器方式安装--临时或测试

1.1 安装必要的系统工具

[root@node03 ~]# yum install -y yum-utils device-mapper-persistent-data lvm2

1.2 添加软件源信息

[root@node03 ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

1.3 配置yum源

sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo

1.4 配置镜像加速器--针对Docker客户端版本大于 1.10.0 的用户

[root@node03 ~]# mkdir -p /etc/docker

[root@node03 ~]# tee /etc/docker/daemon.json <<-'EOF'
> {
>   "registry-mirrors": ["https://0dvpva9j.mirror.aliyuncs.com"]
> }
> EOF

 1.5 更新并安装Docker-CE

#更新安装容器
[root@node03 ~]# yum makecache fast
[root@node03 ~]# yum -y install docker-ce

#重新启动容器
[root@node03 ~]# systemctl daemon-reload
[root@node03 ~]# systemctl enable --now docker

1.6 使用容器方式启动MySQL

[root@node03 ~]# docker run --name mysql -d -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

1.7 登录Docker容器

[root@node03 ~]# docker exec -it mysql bash
root@f00fd8cc3fc4:/# mysql -uroot -p123456

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

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

相关文章

No11.精选前端面试题,享受每天的挑战和学习

文章目录 JS数组去重的几个方法讲下es6新增symbol 数据类型v-model原理是什么vue响应式原理vue中的data 为什么是个函数&#xff1f;前端有几种缓存方式 JS数组去重的几个方法 在JavaScript中&#xff0c;可以使用几种方法对数组进行去重&#xff1a; 使用Set&#xff1a;Set…

每日汇评:美联储会议纪要是否能确认黄金的看涨楔形?

1、在美国独立日清淡的交易中&#xff0c;黄金价格创下了一周以来的新高&#xff1b; 2、在美联储会议纪要之前&#xff0c;美元利用了对经济衰退的担忧和中美科技之争&#xff1b; 3、黄金需要日线收在1922美元上方才能确认看涨楔形&#xff0c;但看跌的RSI值得谨慎&#xf…

png转svg图片免费

svg免费转换网站 https://vectr.com/design/editor/c232c8cb-5eb8-4bae-b302-25cb94a8f737 操作步骤 1.上传png或者其他格式图片 2.点击导出文件 3.选择导出格式为svg和其他配置参数 4.打开下载好的svg图片 5.在编辑器中看svg图片

短视频矩阵系统源码自研+开发技术文档

一、短视频矩阵系统源码自研&#xff08;站在开发者交付分析&#xff09; 目录 一、短视频矩阵系统源码自研&#xff08;站在开发者交付分析&#xff09; 二、 短视频矩阵系统需要开发的前提语言框架技巧&#xff1a;NGINX&#xff0c;PHP7.4&#xff0c;MySQL5.7&#xff0…

多个微信号如何管理?

很多公司都在发愁这几个问题&#xff1a; 1、拥有多个微信号&#xff0c;不想管理多台手机&#xff0c;想将所有微信号进行统一管理 2、想用软件来代替传统的营销体系&#xff0c;安全性上也要有保障 3、用人成本太大与公司的效益不成正比 4、多个账号发圈不方便&#xff0…

创作神器:探索ai智能绘画软件的魅力与功能

曾经有一个名叫小艾的年轻画家&#xff0c;她对绘画充满热情&#xff0c;并梦想创作出令人惊叹的艺术作品。然而&#xff0c;她发现自己在技术和创意方面遇到了一些困难。正当她感到沮丧时&#xff0c;她听说了一个关于智能ai绘画软件的故事&#xff0c;这个软件据说能够通过机…

Layui的table数据渲染不显示是怎么回事?

&#x1f607;作者介绍&#xff1a;一个有梦想、有理想、有目标的&#xff0c;且渴望能够学有所成的追梦人。 &#x1f386;学习格言&#xff1a;不读书的人,思想就会停止。——狄德罗 ⛪️个人主页&#xff1a;进入博主主页 &#x1f5fc;推荐系列&#xff1a;点击进入推荐系列…

Pycharm远程设置 DDP简单介绍

前言 最近接到一些改代码或者帮助debug的需求&#xff0c;大多数不是在本地而是autodl这种服务器上&#xff0c;有些人可能不太了解如何设置远程环境。通常在实验室一般都是在本地调好代码然后scp到服务器上去训练&#xff0c;不过这就需要本地有显卡能测试代码是否能跑通&…

【NX】NX二次开发设置对象高亮和颜色模板实现

在NX二次开发当中&#xff0c;我们经常需要高亮一个或者多个对象&#xff0c;或者设置对象的颜色方便实现&#xff0c;直接调用函数稍微显得麻烦&#xff0c;尤其是当我们需要处理的对象是容器的时候&#xff0c;于是我写了几个简单的模板实现&#xff0c;方便调试。 //author&…

Android Studio利用CMake生成.so文件并且可供其他项目引用

1、CMake工具 1.1、CMake是什么 CMake是一个主要用于CPP的构建工具。CMake语言是平台无关的中间编译工具。同一个CMake编译规则在不同系统平台构建出不同的可执行构建文件&#xff0c;所有操作都是通过编译CMakeLists.txt来完成的。在Linux产生MakeFile&#xff0c;在Windows…

5.1ORB-SLAM3之回环检测线程检测是否存在共视区域

1.简介 本质上是计算当前关键帧和关键帧数据库中的关键帧是否存在公共单词&#xff0c;相似性分数是否满足要求。 bool LoopClosing::NewDetectCommonRegions();主要包括以下几个模块&#xff1a; 寻找回环候选关键帧和融合候选关键帧对候选关键帧进行共视几何验证如果共视几…

Android Studio实现内容丰富的安卓校园二手交易平台(带聊天功能)

如需源码可以添加q-------3290510686&#xff0c;也有演示视频演示具体功能&#xff0c;源码不免费&#xff0c;尊重创作&#xff0c;尊重劳动。 项目编号083 1.开发环境 android stuido jdk1.8 eclipse mysql tomcat 2.功能介绍 安卓端&#xff1a; 1.注册登录 2.查看二手商品…

AndroidStudio设置compileSdk33后xml无提示问题

这个非常蛋疼的问题遇到很多次了&#xff0c;AndroidStudio升级compileSdk33后无xml提示。挺久前写一个调研demo时发现了这个问题&#xff0c;但因为那会任务重&#xff0c;也没有去深入研究&#xff0c;就在写代码时用target32&#xff0c;写完打包demo时修改为33&#xff0c;…

附录7-用户列表案例,element-ui

目录 1 效果 1.1 查询所有用户 1.2 添加新用户 1.3 删除用户 1.4 用户详情 2 后端 2.1 查询所有 2.2 添加 2.3 删除 2.4 查询单个 3 前端 3.1 环境 3.2 main.js 3.3 userList.vue 3.4 userInfo.vue 1 效果 1.1 查询所有用户 1.2 添加新用户 …

工厂水电能耗监测系统组成

工厂水电能耗监测系统是一种用于监测工厂水电能耗的系统&#xff0c;可以帮助工厂管理者了解水电能耗情况&#xff0c;提高能源利用效率&#xff0c;降低生产成本。本文将从系统组成、功能、优点等方面进行介绍。 一、系统组成 工厂水电能耗监测系统由多个部分组成&#xff0c…

MySQL第一天

文章目录 作业1 简述MySQL体系结构CetenOS 7的MySQLyum在线安装CetenOS 7的MySQL的二进制方式安装 作业1 简述MySQL体系结构 MySQL是由SQL接口、解析器、优化器、缓存、储存引擎组成的&#xff0c;MySQL的最重要的是它的储存引擎架构&#xff0c;这种设计将查询处理及其系统任…

【运维工程师学习】Debian安装

【运维工程师学习】Debian安装 1、界面说明2、选择语言3、等待探测并挂载安装介质完成4、设置主机名称、用户信息5、磁盘分区6、创建分区7、最终分区为8、安装ssh9、查看ssh状态10、查看内存大小11、查询系统磁盘及分区情况12、查看各磁盘及分区剩余13、查看ip地址 选择镜像文件…

新服务器配环境

本章节的大概思路为&#xff1a; 1、远程连接服务器 直接远程连接&#xff0c;前的是你要连接的目录名称&#xff0c;后为服务器公网IP。 ssh xxxxxx.xxx.xxx.xxx 远程连接服务器不同端口 -p后为端口名称 ssh xxxxxx.xxx.xxx.xxx -p xxxx 之后输入密码就行了。 2、创建子用…

c语言修炼之猜数字游戏

前言 小伙伴们&#xff0c;今天来学习猜数字游戏叭&#xff01;废话不多说&#xff0c;让我们一起开始学习叭! 思路&#xff1a; 一打开游戏就出现一个菜单然后可以让我们选择是进入游戏还是退出游戏&#xff01; #include<stdio.h> void menu() {printf("*****…

详解高性能无锁队列的实现

一、无锁队列 1.1 什么是无锁队列 无锁队列&#xff08;Lock-Free Queue&#xff09;是一种并发数据结构&#xff0c;它允许多个线程在没有锁的情况下进行并发操作。 传统的队列通常通过互斥锁来实现线程安全的操作&#xff0c;但互斥锁在高并发情况下可能会造成竞争和性能瓶…