目录
在配置yum之前,我们需要先了解yum是什么,yum,是Yellow dog Updater Modified的简称,起初是由yellow dog这一发行版的开发者Terra Soft研发,用python写成,那时还叫做yup(yellow dog updater),后经杜克大学的Linux@Duke开发团队进行改进,遂有此名。
yum的宗旨是自动化地升级,安装/移除rpm包,收集rpm包的相关信息,检查依赖性并自动提示用户解决。
yum的关键之处是要有可靠的repository,顾名思义,这是软件的仓库,它可以是http或ftp站点, 也可以是本地软件池,但必须包含rpm的header, header包括了rpm包的各种信息,包括描述,功能,提供的文件,依赖性等.正是收集了这些 header并加以分析,才能自动化地完成余下的任务。
它能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
sudo yum update
安装yum-utils 用来管理yum源代
sudo yum install -y yum-utils
首先用yum来升级软件,yum的操作大都须有超级用户的权限,当然可以用sudo。装了系统添加删除软件是常事,yum同样可以胜任这一任务,只要软件是rpm安装的。
? ? 安装命令
yum install xxx
? ? 删除命令
yum remove xxx
? ? 其他常用命令
1.yum check-update 列出所有可更新的软件清单
2.yum update 安装所有更新软件
3.yum -y install <package_name> 安装指定的软件
4.yum update <package_name> 更新指定的软件
5.yum list <package_name> 不加<package_name>列出所有可安裝的软件清单,加了列出指定的
6.yum -y remove <package_name> 删除软件
7.yum search <package_name> 查找软件
8.yum list installed 列出所有已安装的软件包
9.yum list extras 列出所有已安装但不在 Yum Repository 內的软件包
10.yum info <package_name> 不加<package_name>列出所有软件包的信息,加了列出指定的
11.yum provides <package_name> 列出软件包提供哪些文件
12.yum clean packages 清除缓存目录(/var/cache/yum)下的软件包
13. yum clean all 清除缓存目录(/var/cache/yum)下的软件包及旧的headers
yum list installed | grep docker
如果之前安装过可以不用安装,如果想重新安装也可以,执行卸载老版本docker以及相关依赖即可
sudo yum remove docker docker-common container-selinux docker-selinux docker-engine
yum -y install docker-ce
如果出现 No package docker-ce available 错误,这里我们只需要设置稳定的仓库,添加yum源即可。
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
然后再执行安装Docker命令进行安装就可以了?。
sudo systemctl start docker
sudo systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
systemctl status docker
docker.service - Docker Application Container Engine
? ?Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
? ?Active: active (running) since Tue 2023-12-12 16:54:00 CST; 34s ago
? ? ?Docs: https://docs.docker.com
?Main PID: 26847 (dockerd)
? ?CGroup: /system.slice/docker.service
? ? ? ? ? ?└─26847 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sockDec 12 16:53:59 iZ2ze6on3jy8afby5yaj0bZ systemd[1]: Starting Docker Application Container Engine...
Dec 12 16:53:59 iZ2ze6on3jy8afby5yaj0bZ dockerd[26847]: time="2023-12-12T16:53:59.341325810+08:00" le...up"
Dec 12 16:53:59 iZ2ze6on3jy8afby5yaj0bZ dockerd[26847]: time="2023-12-12T16:53:59.490260781+08:00" le...t."
Dec 12 16:54:00 iZ2ze6on3jy8afby5yaj0bZ dockerd[26847]: time="2023-12-12T16:54:00.172727029+08:00" le...ng"
Dec 12 16:54:00 iZ2ze6on3jy8afby5yaj0bZ dockerd[26847]: time="2023-12-12T16:54:00.261938793+08:00" le...e."
Dec 12 16:54:00 iZ2ze6on3jy8afby5yaj0bZ dockerd[26847]: time="2023-12-12T16:54:00.287876345+08:00" le...0.7
Dec 12 16:54:00 iZ2ze6on3jy8afby5yaj0bZ dockerd[26847]: time="2023-12-12T16:54:00.287988480+08:00" le...on"
Dec 12 16:54:00 iZ2ze6on3jy8afby5yaj0bZ dockerd[26847]: time="2023-12-12T16:54:00.316181097+08:00" le...ck"
Dec 12 16:54:00 iZ2ze6on3jy8afby5yaj0bZ systemd[1]: Started Docker Application Container Engine.
Hint: Some lines were ellipsized, use -l to show in full.
若要列出正在运行的容器,请使用?docker ps
?命令
docker ps -a
需要查看前述输出中的以下三个项
IMAGE 列中列出的映像名称;在此示例中为 tmp-ubuntu: latest。 请注意,你可以从同一映像创建多个容器。 这是一种强大的管理功能,可用于在解决方案中实现缩放。
STATUS 列中列出的容器状态。 在本例中,一个容器正在运行,一个容器已退出。 容器的状态通常是容器运行状况的第一个指标。
NAMES 列中列出的容器名称。 除了第一列中的容器 ID 之外,容器还会接收名称。 在本例中,由于你没有为每个容器显式提供名称,因此,Docker 为容器提供了随机名称。 若要使用?--name
?标志为容器提供显式名称,请使用?run
?命令。
为什么要为容器命名
借助此功能,可运行同一映像的多个容器实例。 容器名称是唯一的,这意味着如果指定了某一名称,则不能重复使用该名称来创建新的容器。 重复使用特定名称的唯一方法是删除之前的容器
若要启动容器,请使用?docker run
?命令。 只需按名称或 ID 指定要运行的映像,即可从映像启动容器。 通过此方式启动的容器提供交互式体验
docker run -d tmp-ubuntu
若要暂停容器,请运行?docker pause
?命令
docker pause happy_wilbur
若要重启容器,请运行?docker restart
?命令
docker restart happy_wilbur
若要停止正在运行的容器,请运行?docker stop
?命令
docker stop happy_wilbur
若要删除容器,请运行?docker rm
?命令
docker rm happy_wilbur
sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
sudo yum install dotnet-sdk-6.0
dotnet --info
cat /etc/redhat-release
查看系统是否已经安装过MySql
rpm -qa | grep mysql
卸载MySql
rpm -e --nodeps 软件名
查找MySql文件,并将其删除
find / -name mysql
whereis mysql
?将find
命令和whereis
命令查询到的mysql文件全部删除
rm -rf 查询到的mysql路径
删除mysql配置文件
rm /etc/my.cnf
确认是否全部删除mysql
rpm -qa | grep -i mysql
查看是否有安装?mariadb,该软件与 MySQL 数据库有冲突,需要手动卸载
rpm -qa | grep mariadb
移除MySql相关的软件
rpm -e --nodeps community-common-8.0.31-1.el8.x86_6
如果出现包移除失败时,error: package –-nodeps is not installed
看了一下 rpm的参数表,发现这个 nodeps 应该是 no depends 的缩写,于是乎,有点儿顿悟,莫非是要删除的模块没有依赖?
去掉这个参数
rpm -e mysql-community-common-8.0.31-1.el8.x86_6
安装MySql需要在MySql官网查看Mysql安装包。找到MySQL Community Server
选择 MySQL 的版本
注意 MySQL 的版本需要与 Linux 的版本对应上
centos7 系统对应的 MySQL 是 el7
centos8 系统对应的 MySQL 是 el8
一般情况下,直接选择第一个安装包即可,第一个安装包的版本会不定时的更新,与本文所用的安装包有略微的差别,但是并不影响具体的使用
下载安装包
cd /usr/local
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.31-1.el8.x86_64.rpm-bundle.tar
等待下载完成,查看下载后的文件
ll
解压
解压之后会有很多包产生,为了方便查看,将其解压到?/usr/local/mysql_package
?里面
mkdir /usr/local/mysql_package
cd /usr/local/mysql_package
tar -xvf /usr/local/mysql-8.0.31-1.el8.x86_64.rpm-bundle.tar -C /usr/local/mysql_package
使用rpm安装
必须按照顺序执行命令,否则会出现依赖错误的报错
rpm -ivh mysql-community-common-8.0.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.31-1.el7.x86_64.rpm
常见错误总结
未按照规定顺序安装软件
按照顺序安装即可解决
?openssl 缺失
?安装?
openssl-devel
?即可解决
rpm -ivh mysql-community-devel-8.0.31-1.el8.x86_64.rpm
使用?yum install openssl-devel -y
?安装?openssl-devel
yum install openssl-devel -y
?perl 和 libaio 缺失
安装?
prel
?和?libaio
?即可解决
yum list perl
yum install -y perl.x86_64
查看与 libaio 相关的软件
yum list libaio
?安装
yum install -y libaio*
libc.so.6 缺失
大概率是因为下载的?MySQL版本与 Linux 版本对应不上,可以检查一下 MySQL 压缩包后缀名里面的参数是否与系统版本匹配
- centos7 系统对应的 MySQL 是 el7
- centos8 系统对应的 MySQL 是 el8
启动MySql服务
systemctl start mysqld
获取首次启动生成的随机密码
sudo grep 'temporary password' /var/log/mysqld.log
登录mySql并修改密码
mysql -uroot -p
更新密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPwd123';
开启允许root账户远程连接
# 切换使用mysql数据库
use mysql;
# 开启远程
update user set host='%' where user='root';
# 刷新权限
flush privileges;
退出mysql
quit;
开启防火墙端口允许访问
#查看防火墙状态
systemctl status firewalld
#查看开放的端口
firewall-cmd --query-port=3306/tcp
#添加端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
#重载防火墙
firewall-cmd --reload
#再次查看端口是否已经开放
firewall-cmd --query-port=3306/tcp
?systemctl status firewalld? ?查看防火墙状态
firewall-cmd --query-port=3306/tcp 查看开放的端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent? 添加端口
?firewall-cmd --reload 重载防火墙
firewall-cmd --query-port=3306/tcp 再次查看端口是否已经开放
设置mySql开启自启
systemctl enable mysqld