0
点赞
收藏
分享

微信扫一扫

openEuler基础(二十六)RPM方式安装软件(MySQL5.7)

水墨_青花 2022-04-24 阅读 89

提出问题:
在openEuler中如何安装软件?
如何用rpm命令安装mysql数据库?

openEuler中软件包可分为两类:源码包、二进制包,不同的软件包有不同的提供方式,常用的方式有rpm包和tgz包两种。为此,常用应用软件的安装方式也有两种,一种为使用rpm工具安装,一种为编译安装。
rpm作为标准的软件包管理工具,具有便捷的安装方式,是安装软件的首选方式。

一、RPM软件包管理
RPM是一种用于互联网下载包的打包和自动安装工具,会生成具有.RPM扩展名的文件,可以用来管理应用程序的安装、卸载和维护。

RPM软件包管理优点:
(1)简单便捷,兼容版本;
(2)参数信息记录在数据库中,便于查询、升级或卸载软件时使用。

RPM软件包管理缺点:
(1)安装环境需与打包环境一致;
(2)具有很强的依赖关系,卸载软件时需要对依赖性软件优先处理,否则会导致其他软件无法正常使用。

RPM常用于安装、删除、升级、刷新和查询的场景。
语法:rpm [OPTION…]。
其中的命令选项说明如下:
-i:指定安装的软件包
-h:使用“#(hash)”符显示rpm详细的安装过程及进度
-v:显示安装的详细过程
-U:升级指定的软件包
-q:查询系统是否已安装指定的软件包或查询指定rpm包内容信息
-a:查看系统已安装的所有软件包
-V:查询已安装的软件包的版本信息
-c:显示所有配置文件
-p:查询/校验一个软件包的文件
-e<套件档>或–erase<套件档> 删除指定的套件

用法示例1:RPM命令安装软件
首先,需要下载example.rpm软件包到本地,然后在软件包所在目录下完成安装。

[root@localhost ~]# rpm -i example.rpm

命令选项说明如下:-i:安装一个包

[root@localhost ~]# rpm -iv example.rpm

命令选项说明如下:-iv:安装一个包并在安装过程中显示正在安装的文件信息

[root@localhost ~]# rpm -ivh example.rpm

命令选项说明如下:- ivh:安装一个包并在安装过程中显示正在安装的文件信息和进度

用法示例2:RPM命令查询软件安装情况
(1)-qa:查询所有安装的软件包。

[root@localhost ~]# rpm -qa
openvswitch-2.12.0-5.oe1.aarch64
tk-8.6.8-4.oe1.aarch64
scap-security-guide-0.1.39-4.oe1.noarch
libtar-1.2.20-17.oe1.aarch64
libwbclient-4.11.6-5.oe1.aarch64

(2)-ql:查询已安装的软件包中的文件列表和完整目录。

[root@localhost ~]# rpm -ql python3-libxml2-2.9.8-9.oe1.aarch64
/usr/lib64/python3.7/site-packages/__pycache__/drv_libxml2.cpython-37.opt-1.pyc
/usr/lib64/python3.7/site-packages/__pycache__/drv_libxml2.cpython-37.pyc
/usr/lib64/python3.7/site-packages/__pycache__/libxml2.cpython-37.opt-1.pyc

(3)-qi:查询软件包的详细信息。

[root@localhost ~]# rpm -qi python3-libxml2-2.9.8-9.oe1.aarch64
Name        : python3-libxml2
Version     : 2.9.8
Release     : 9.oe1
Architecture: aarch64
Install Date: Wed 22 Apr 2020 04:42:38 PM CST
Group       : Development/Libraries
Size        : 1411076
License     : MIT

用法示例3:RPM命令卸载软件
系统里确认已经安装example.rpm软件。
命令选项说明如下:
rpm软件包卸载需要考虑包与包之间的依赖性;
卸载时若不考虑包的依赖性,可以使用nodeps命令(不检测依赖性)进行强制卸载;
若是该软件包存在多个版本,可以使用allmatches命令进行批量卸载。
(1)卸载

[root@localhost ~]# rpm -e example.rpm

(2)强制卸载

[root@localhost ~]# rpm -e -nodeps example.rpm

(3)批量卸载

[root@localhost ~]# rpm -e -allmatches example.rpm

用法示例4:RPM命令升级软件
系统里确认已经安装example.rpm软件。
命令选项说明如下:
-Uvh:代表存在旧包时,删除旧包安装新包时使用;
-Fvh:代表存在旧包时,在旧包的基础上进行升级。
(1)删除旧软件包,用新软件包升级

[root@localhost ~]# rpm -U example.rpm

(2)删除旧软件包,用新软件包并显示进度

[root@localhost ~]# rpm -Uvh -nodeps example.rpm

(3)在旧软件包的基础上进行升级

[root@localhost ~]# rpm -F example.rpm

(4)在旧软件包的基础上进行升级并显示进度

[root@localhost ~]# rpm -Fvh example.rpm

二、RPM应用实例:安装MySQL5.7.32

  1. 查看openEuler操作系统版本和系统内核版本
    查看操作系统版本:
[root@localhost ~]# cat /etc/openEuler-release

在这里插入图片描述

查看系统内核版本:
命令:uname –r
在这里插入图片描述

  1. 下载对应版本的MySQL安装文件
    (1)下载地址:https://dev.mysql.com/downloads/mysql/
    (2)选择对应的Linux版本和x86/x64进行下载
    在这里插入图片描述
    在这里插入图片描述

我们在这里下载5.7.32版
(1)可以选择 RPM Bundle,下载完记得解压 tar -xvf xxx.tar
在这里插入图片描述

(2)也可以细化下载,下载须要的mysql组件,有4个:分别是 server、client、common、libs
在这里插入图片描述

  1. 将mysql rpm所有文件拷贝到一个文件夹下,例如mysql文件夹
    在这里插入图片描述

  2. 将windows下的mysql文件共享给openEuler
    (1)openEuler关机,打开“虚拟机设置”
    在这里插入图片描述

(2)在“虚拟机设置”对话框中,找到“共享文件夹”,并设置前面的文件夹为共享目录
在这里插入图片描述

(3)确保虚拟机已经安装了VMWare tools。若未安装,请参考前面课程讲解,完成安装。
(4)进入/mnt/hgfs/ 查看共享的文件夹
在这里插入图片描述

此时,说明mysql文件已经共享至openEuler系统

  1. 卸载旧版本的MySql (没有的话,则跳过此步骤)
    (1)查看旧版本MySql
    在这里插入图片描述

(2)若有旧版本,逐个删除掉旧的组件
(I)通过rpm -q <关键字>查到rpm包的名字。
(II)调用rpm -e <包名>删除特定的rpm包

  1. 使用 rpm 命令安装MySql组件
    (1)在/home/目录下新建一个目录student,然后在命令行里,切换到/home/student/目录下,便于接下来安装。
    在这里插入图片描述

(2)将共享的mysql文件拷贝至/home/student/目录下
在这里插入图片描述

(3)使用命令rpm -ivh {-file-name}进行安装操作,按照依赖关系依次安装rpm包
依赖关系依次为:common→libs→client→server
注:参数ivh中,i-install安装;v-verbose进度条;h-hash哈希校验
(I)安装common组件
命令:rpm -ivh mysql-community-common-5.7.32-1.el7.x86_64.rpm
在这里插入图片描述

(II)安装libs组件
命令:rpm -ivh mysql-community-libs-5.7.32-1.el7.x86_64.rpm
在这里插入图片描述

(III)安装client组件
命令:rpm -ivh mysql-community-client-5.7.32-1.el7.x86_64.rpm
在这里插入图片描述

(IV)安装server组件
命令:rpm -ivh mysql-community-server-5.7.32-1.el7.x86_64.rpm
在这里插入图片描述

(4)查看安装结果
命令:rpm -qa | grep mysql
在这里插入图片描述

  1. 登录并创建MySql密码
    (1)查看当前mysql运行状态
    命令:systemctl status mysqld
    在这里插入图片描述

此时,默认mysql未启动

(2)启动mysql
命令:systemctl start mysqld
然后,再次查看mysql运行状态
命令:systemctl status mysqld
此时已经启动
在这里插入图片描述

(3)登陆mysql查看root密码
由于MySQL5.7.4之前的版本中默认是没有密码的,登录后直接回车就可以进入数据库,进而进行设置密码等操作。
其后版本对密码等安全相关操作进行了一些改变,在安装过程中,会在安装日志中随机生成一个初始密码,放在/var/log/mysqld.log文件中。查询/var/log/mysqld.log文件中的初始密码。
命令:cat /var/log/mysqld.log | grep password
在这里插入图片描述

这是加密后的密码,我们无法直接用于登录,因此,只能先重置mysql密码。

(4)密码重置
(I)用vi命令打开/etc/my.cnf文件
命令:vi /etc/my.cnf
在这里插入图片描述

(II)修改my.cnf文件,增加一行:skip-grant-tables
在这里插入图片描述

(III)按ESC 键 跳到命令模式,输入退出命令::wq 保存并退出
注:vi用法
1)进入编辑模式,按 o 进行编辑
2)编辑结束,按ESC 键跳到命令模式,然后输入退出命令:
:w保存文件但不退出vi 编辑
:w! 强制保存,不退出vi 编辑
:w file将修改另存到file中,不退出vi 编辑

:wq保存文件并退出vi 编辑
:wq!强制保存文件并退出vi 编辑

q:不保存文件并退出vi 编辑
:q!不保存文件并强制退出vi 编辑
:e!放弃所有修改,从上次保存文件开始在编辑

(4)重启mysql
命令:systemctl restart mysqld
在这里插入图片描述

(5)免密码,登录mysql
命令:mysql -u root
在这里插入图片描述

(6)在mysql中,就可以使用各种sql语句进行数据库操作了,例如,查看所有数据库:show databases;
在这里插入图片描述

(7)切换到mysql数据库,更新user表,修改root密码:
命令:use mysql;
在这里插入图片描述

然后,输入SQL命令:
update user set authentication_string = password(‘root’), password_expired = ‘N’, password_last_changed = now() where user = ‘root’;
在这里插入图片描述

在之前的版本中,密码字段的字段名是 password,5.7版本改为了 authentication_string

(8)退出mysql,用命令:quit
在这里插入图片描述

编辑 /etc/my.cnf 文件
在这里插入图片描述

删除 skip-grant-tables的内容,并保存退出。
在这里插入图片描述

(9)重启 mysqld 服务
在这里插入图片描述

(10)再用新密码登录即可
命令:mysql -u root -p
按提示输入刚设置的密码:root
在这里插入图片描述

至此,rpm安装mysql全部完成,并配置正确。

举报

相关推荐

0 条评论