【MySQL入门实战5】-Linux PRM 包安装MySQL
作者:mmseoamin日期:2023-12-25

📢📢📢📣📣📣

哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA工作经验

一位上进心十足的【大数据领域博主】!😜😜😜

中国DBA联盟(ACDU)成员,目前从事DBA及程序编程

擅长主流数据Oracle、MySQL、PG 运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。

✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞

❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️

文章目录

  • 前言
    • 📣 1.概述
    • 📣 2.环境准备
    • 📣 3.RPM安装包下载
    • 📣 4.离线yum配置
    • 📣 5.添加用户及组
    • 📣 6.安装MySQL
    • 📣 7.MySQL启动
    • 📣 8.创建远程用户
    • ✨ 每日一练

      前言

      本文中的部署是RPM包基于RHEL8的操作系统安装MySQL8.0

      📣 1.概述

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

      📣 2.环境准备

      1.操作系统

      [root@jeames ~]# cat /etc/redhat-release

      Red Hat Enterprise Linux release 8.1 (Ootpa)

      2.关闭防火墙

      [root@jeames ~]# systemctl stop firewalld

      #取消开机自启动

      [root@jeames ~]# systemctl disable firewalld

      Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.

      Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

      3.selinux关闭

      修改参数文件/etc/sysconfig/selinux中SELINUX的值为disabled

      [root@jeames ~]# sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config

      修改完成后需要重启才生效

      📣 3.RPM安装包下载

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

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

      【MySQL入门实战5】-Linux PRM 包安装MySQL,在这里插入图片描述,第1张

      📣 4.离线yum配置

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

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

      📣 5.添加用户及组

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

      1.添加组

      [root@jeames ~]# groupadd mysql

      删除组:groupdel users

      2.用户加到组并指定根目录

      [root@jeames ~]# useradd -g mysql -d /home/mysql mysql

      删除用户:userdel mysql

      3.修改密码

      [root@jeames ~]# passwd mysql

      New password:

      BAD PASSWORD: The password is shorter than 8 characters

      Retype new password:

      passwd: all authentication tokens updated successfully.

      📣 6.安装MySQL

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

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

      📣 7.MySQL启动

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

      1.查看 MySQL服务

      [root@jeames ~]# ps -ef | grep mysql

      [root@jeames ~]# systemctl status mysqld

      2.文件所有者和文件关联组授权

      [root@jeames ~]# chown mysql:mysql /var/lib/mysql -R

      3.启动服务

      [root@jeames ~]# systemctl start mysqld

      [root@jeames ~]# systemctl status mysqld

      4.设置开机自启动

      [root@jeames ~]# systemctl enable mysqld

      5.查看临时密码

      [root@jeames ~]# cat /var/log/mysqld.log | grep password

      如下图所示,可以确认MySQL的服务已正常运行,若无法启动,请排查错误日志。

      【MySQL入门实战5】-Linux PRM 包安装MySQL,在这里插入图片描述,第2张

      📣 8.创建远程用户

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

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

      修改后通过其他IP就可以正常访问MySQL数据库了,如下图所示:

      【MySQL入门实战5】-Linux PRM 包安装MySQL,在这里插入图片描述,第3张

      ✨ 每日一练

      drop、delete与truncate的区别是什么?( )

      1.三者都表示删除,但是三者有一些差别:

      2.在不再需要一张表的时候,用drop;

      3.在想删除部分数据行时候,用delete;

      4.在保留表而删除所有数据的时候用truncate。

      A.4

      B.1, 2, 3

      C.全部都对

      D.2, 3, 4

      ❤️❤️❤️ 请在评论区留下你的答案,我会做出详细的解答。

      【MySQL入门实战5】-Linux PRM 包安装MySQL,在这里插入图片描述,第4张