CentOS Linux MySQL 数据库 的安装方法

一、简单了解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.hqwc.cn/news/8933.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Basler相机一丢包就断开问题解决

问题描述&#xff1a; 两个相机&#xff0c; 一个相机aca2500-14gm连接电脑主板100M网卡没问题&#xff0c;帧率3帧&#xff0c;但是不会断。 一个相机aca2500-14gm连接USB转网口&#xff08;千兆&#xff09;&#xff0c;pylon Viewer采图丢包严重并且几秒后相机断开。 解决…

Nacos架构与原理 - 寻址机制

文章目录 前提设计MemberLookup内部实现单机寻址 StandaloneMemberLookup文件寻址 FileConfigMemberLookup地址服务器寻址 AddressServerMemberLookup 未来可扩展点 前提 Nacos 支持单机部署以及集群部署 针对单机模式&#xff0c;Nacos 只是自己和自己通信&#xff1b;对于集…

认识 SpringCloud 核心组件

✅作者简介&#xff1a;大家好&#xff0c;我是Cisyam&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Cisyam-Shark的博客 &#x1f49e;当前专栏&#xff1a; 微服务探索之旅 ✨特色专…

黑马微服务课程cloud-demo项目出现No instances available for userservice错误解决办法

错误描述 如果你的cloud-demo项目当输入http://localhost:8080/order/101&#xff0c;想查看订单编号为101的数据&#xff0c;网页前端显示如下错误 IDEA显示错误&#xff1a; 07-05 16:39:16:251 ERROR 10056 — [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] …

windows系统中常用的cmd命令(白帽黑帽必备知识)

文章目录 前言一、我们也来学习下二、windows系统中常用命令介绍1.netstat 命令2.ping 命令3.arp 命令4.route 命令5.tracert 命令6.telnet 命令7.nmap 命令8.SMB 命令9.tasklist 命令10.at 命令11.nslookup 命令12.ftp 命令13.net 命令14.ipconfig 命令 总结 前言 在计算机领…

学习 | 药品GMP认证和药厂GMP认证是怎么回事?

可能本身从事药品生产经营的朋友会知道&#xff0c;药品的GMP认证是怎么一回事&#xff0c;但是对于一些想要进入药品生产行业的企业&#xff0c;例如化工产品想进入原料药生产、药用辅料生产&#xff0c;塑料等材料制作商进入药品包装材料生产&#xff0c;只是听这说听那说&am…

Nginx配置

server模块 其中&#xff0c;这里并不是真的启动一个服务&#xff0c;是一个逻辑服务&#xff0c;是去匹配来请求服务的路径&#xff0c;listen是匹配请求者访问了什么端口&#xff0c;server_name是匹配请求者用了什么域名&#xff0c;location是将匹配上的请求转发到哪个地…

黑马点评(达人探店)

达人探店 一、发布探店笔记 发布探店笔记功能是项目本身就完成了的功能&#xff0c;他会把图片存在本地&#xff0c;有兴趣可以去看源码&#xff0c;在UploadCOntroller类下 二、查看探店笔记 这个功能项目本身是没有完成这个接口的&#xff0c;所以需要我们自己去完成。 …

MySQL体系结构及各结构的功能

MySQL体系结构 MySQL的体系结构实际就是MySQL数据库是由那些部分构成&#xff0c;每个部分的具体作用是什么。 Connectors&#xff1a; 用于不同的编程语言连接MySQL数据库&#xff0c;即对外提供的API。 Management Service &Utilities&#xff1a; 用于管理系统&…

MySQL不常用但非常实用的函数在项目中的应用

MySQL内置了不少函数&#xff0c;利用这些函数可以很好地在进行数据查询时候&#xff0c;进行数据处理&#xff0c;如果要查看MySQL所有的内置函数&#xff0c;可以在官网的文档中&#xff1a;Built-In Function and Operator Reference 有很详细的表格&#xff0c;列举了所有…

Redis【实战篇】---- 分布式锁

Redis【实战篇】---- 分布式锁 1. 基本原理和实现方式对比2. Redis分布式锁的实现核心思路3. 实现分布式锁版本一4. Redis分布式锁误删情况说明5. 解决Redis分布式锁误删问题6. 分布式锁的原子性问题7. Lua脚本解决多条命令原子性问题8. 利用Java代码调试Lua脚本改造分布式锁 1…

5分钟了解制造核心5大系统的联系

本篇&#xff0c;我们来快速了解一下制造行业核心的5大系统MES、ERP、WMS、PLM和SCADA究竟有怎么样的关系&#xff0c;它们是如何连接的。 上图粗略描述了MES、ERP、WMS、PLM和SCADA五大系统之间的连接关系。 不过&#xff0c;我们先从ERP系统开始&#xff0c;因为这是大部分制…