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
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值