目录

3.3 Linux PRM 包安装MySQL

RPM是Redhat Package Manager的缩写,是由RedHat公司开发的软件包安装和管理程序,使用RPM,用户可以自行安装和管理Linux上的应用程序和系统工具。可以让用户直接以binary方式安装软件包,用此种方式安装MySQL,方便快捷,生产上推荐使用此种方法。以下部署是RPM包基于RHEL8的操作系统安装MySQL8.0。

3.3.1 环境准备

11. 操作系统
2[root@jeames ~]# cat /etc/redhat-release
3Red Hat Enterprise Linux release 8.1 (Ootpa)
4
52.关闭防火墙
6# 查看防火墙是状态
7[root@jeames ~]# systemctl status firewalld
8# 关闭防火墙
9[root@jeames ~]# systemctl stop firewalld
10# 取消开机自启动
11[root@jeames ~]# systemctl disable firewalld
12Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
13Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
14
153.selinux关闭
16修改参数文件/etc/sysconfig/selinux中SELINUX的值为disabled
17[root@jeames ~]# sed -i 's/SELINUX\=enforcing/SELINUX\=disabled/g' /etc/selinux/config

3.3.2 RPM安装包下载

官网下载地址:https://dev.mysql.com/downloads/mysql/

RPM包下载选择Red Hat Enterprise Linux / Oracle Linux

3.3.3 离线yum配置

在这里配置本地yum源,企业服务器不连外网,一般使用通过插入镜像盘或者U盘做依赖源,yum配置好后安装MySQL的依赖包即可。

11.创建挂载路径
2mkdir -p /mnt/cdrom
3
42.挂载系统镜像光盘到指定目录
5mount -t iso9660 /dev/sr0 /mnt/cdrom
6
73.修改yum源配置文件
8# 编辑rhel8-local.repo文件
9cd /etc/yum.repos.d
10vi rhel8-local.repo
11
12[localREPO]
13name=localhost8
14baseurl=file:///mnt/cdrom/BaseOS
15enable=1
16gpgcheck=0
17
18[localREPO_APP]
19name=localhost8_app
20baseurl=file:///mnt/cdrom/AppStream
21enable=1
22gpgcheck=0
23
24# baseurl:
25这个是非常重要的一环,表明了repositry的地址,支持ftp协议,http协议和file协议;
26# enabled=0/1:
27只有两个值,为1时表示repositry可以获取,0表示关闭
28# gpgcheck=0/1:
29有1和0两个选择,分别代表是否是否进行gpg校验,如果没有这一项,默认是检查的
30
314.配置好后重建本地缓存
32yum clean all
33yum makecache
34yum repolist
35
36说明:这一步主要是确保yum能正常使用
37
385.安装依赖包
39yum -y install lrzsz wget perl-Digest-MD5
40yum -y install numactl
41yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make
42
43说明:这些依赖包都是MySQL 8.0版本所必须的


3.3.4 添加用户及组

以root用户登陆到服务器,在创建用户及组之前,检查是否存在mysql用户组。

11.添加组
2[root@jeames ~]# groupadd mysql
3删除组:groupdel users
4
52.用户加到组并指定根目录
6[root@jeames ~]# useradd -g mysql -d /home/mysql mysql
7删除用户:userdel mysql
8
93.修改密码
10[root@jeames ~]# passwd mysql
11New password:
12BAD PASSWORD: The password is shorter than 8 characters
13Retype new password:
14passwd: all authentication tokens updated successfully.

3.3.5 安装MySQL

将下载好的rpm包上传到服务器,按照如下步骤安装部署。

11.校验安装包
2[root@jeames ~]# md5sum mysql-8.0.27-1.el8.x86_64.rpm-bundle.tar
3edf4d0f95867f62cdcc97b7349bedc59 mysql-8.0.27-1.el8.x86_64.rpm-bundle.tar
4注: md5sum是linux下的shell命令,功能是计算检验MD5效验码,此处是为了MySQL安装包损坏
5
62.解压安装包
7[root@jeames ~]# tar -xvf mysql-8.0.27-1.el8.x86_64.rpm-bundle.tar -C /home/mysql/
8必须安装的四个rpm包
9mysql-community-common-8.0.27-1.el8.x86_64.rpm --必须,它是公共库
10mysql-community-libs-8.0.27-1.el8.x86_64.rpm --它是开发库
11mysql-community-client-8.0.27-1.el8.x86_64.rpm --它是客户端的安装包
12mysql-community-server-8.0.27-1.el8.x86_64.rpm --它是服务端的安装包
13
143.授权
15[root@jeames ~]# chown -R mysql:mysql /home/mysql/
16
174.rpm包安装
18[root@jeames ~]# cd /home/mysql/
19注:包之间相互依赖,所以必须注意安装顺序,先装common,再装libs,再装 client,最后装 server
20[root@jeames mysql]# rpm -ivh mysql-community-common-8.0.27-1.el8.x86_64.rpm
21[root@jeames mysql]# rpm -ivh --force --nodeps mysql-community-libs-8.0.27-1.el8.x86_64.rpm
22[root@jeames mysql]# rpm -ivh mysql-community-client-8.0.27-1.el8.x86_64.rpm --force --nodeps
23[root@jeames mysql]# rpm -ivh mysql-community-server-8.0.27-1.el8.x86_64.rpm --force --nodeps
24
255.确认rpm包安装是否安装
26[root@jeames mysql]# rpm -qa | grep mysql
27mysql-community-common-8.0.27-1.el8.x86_64
28mysql-community-server-8.0.27-1.el8.x86_64
29mysql-community-libs-8.0.27-1.el8.x86_64
30mysql-community-client-8.0.27-1.el8.x86_64
316.初始化
32[root@jeames mysql]# mysqld --initialize
33
347.大小写铭感参数设置
35cat /etc/my.cnf配置文件里可以修改
36只需要在就需要在[mysqld]下面添加一行配置,
37即 lower_case_table_names=0
38其中 0表示区分大小写,1表示不区分大小写
39此处的目的是为了开发的规范,Linux环境一般是要求区分大小写

3.3.6 MySQL启动

使用rpm包安装,RHEL8操作系统会使用systemctl方便灵活的管理MySQL服务,记得设置开机自启动。

11.查看 MySQL服务
2[root@jeames ~]# ps -ef | grep mysql
3[root@jeames ~]# systemctl status mysqld
4
52.文件所有者和文件关联组授权
6[root@jeames ~]# chown mysql:mysql /var/lib/mysql -R
7
83.启动服务
9[root@jeames ~]# systemctl start mysqld
10[root@jeames ~]# systemctl status mysqld
11
124.设置开机自启动
13[root@jeames ~]# systemctl enable mysqld
14
155.查看临时密码
16[root@jeames ~]# cat /var/log/mysqld.log | grep password

3.3.7创建远程用户

MySQL的用户认证形式是:用户名+主机,MySQL的主机信息可以是本地(localhost),某个IP,某个IP段,以及任何地方等。要从其他IP访问MySQL,就需要创建远程用户。

11.临时密码登陆
2[root@jeames ~]# grep 'temporary password' /var/log/mysqld.log
3[root@jeames ~]# mysql -uroot -p
4
52.修改本地root用户密码
6mysql> alter user root@'localhost' identified with
7mysql_native_password by 'root';
8mysql> flush privileges;
9mysql> select Host,User from mysql.user;
10
113.创建远程root用户
12mysql> create user root@'%' identified with mysql_native_password by 'root';
13mysql> grant all on *.* to root@'%' with grant option;
14mysql> flush privileges;